Podzapytanie MYSQL Klauzula SELECT w JOIN

Ok ... no cóż, muszę umieścić podkwerendę w aJOIN klauzula, ponieważ wybiera więcej niż jedną kolumnę i umieszcza ją wSELECT klauzula nie pozwala na to, ponieważ daje mi błąd argumentu. Ktokolwiek, to jest moje zapytanie:

SELECT 
    c.id, 
    c.title, 
    c.description, 
    c.icon, 
    p.id as topic_id, 
    p.title AS topic_title, 
    p.date, 
    p.username
FROM forum_cat c
        LEFT JOIN (
            SELECT 
                ft.id, 
                ft.cat_id, 
                ft.title, 
                fp.date, 
                u.username
            FROM forum_topic ft
                JOIN forum_post fp ON fp.topic_id = ft.id
                JOIN user u ON u.user_id = fp.author_id
            WHERE ft.cat_id = c.id
            ORDER BY fp.date DESC
            LIMIT 1
         ) p ON p.cat_id = c.id
WHERE c.main_cat = ?
ORDER BY c.list_no

Teraz potrzebuję tutaj ważnej rzeczy ...FOR EACH kategoria, chcę pokazać najnowszy tytuł postu i tematu w każdej kategorii. Jednak ta instrukcja select idzie INSIDE do pętli foreach pętli wokół ogólnych kategorii, które znajdują się w moim main_cat. Więc istnieje 5 głównych kategorii z 3-8 podkategoriami .. to jest zapytanie podkategorii. ALE DLA KAŻDEJ podkategorii, muszę pobrać najnowszy post. Jednak uruchamia tylko to zapytanie SELECT dla każdej głównej kategorii, więc tylko wybierz NAJNOWSZY post między wszystkimi podkategoriami łącznie ... Chcę uzyskać najnowszy post KAŻDEGO podkategorii , ale raczej nie uruchamiam tego zapytania dla każdej podkategorii ... ponieważ chcę, aby ładowanie strony było szybkie. ALE PAMIĘTAJ, niektóre podkategorie NIE będą miały najnowszego postu, ponieważ niektóre z nich mogą jeszcze nie zawierać tematu! Stąd lewe przyłączenie.

Czy ktoś wie, jak to zrobić?

I BTW, to błąd, który mi daje(WHERE ft.cat_id = c.id) w podzapytaniu, ponieważc.id to nieznana kolumna. Ale próbuję odwołać się do niego z zewnętrznego zapytania, więc czy ktoś może mi w tym pomóc?

Dziękuję Ci!

Wszystkie tabele:

forum_cat (Subcategories)
-----------------------------------------------
ID, Title, Description, Icon, Main_cat, List_no

forum_topic (Topics in each subcategory)
--------------------------------------------
ID, Author_id, Cat_id, Title, Sticky, Locked

forum_post (Posts in each topic)
--------------------------------------------
ID, Topic_id, Author_id, Body, Date, Hidden'

Główne kategorie są wymienione w funkcji. Nie zapisałem ich w bazie danych, ponieważ było to marnowanie miejsca, ponieważ nigdy się nie zmieniają. Istnieje jednak 7 głównych kategorii.

questionAnswers(1)

yourAnswerToTheQuestion