MYSQL-Unterabfrage SELECT in der JOIN-Klausel

Ok ... nun, ich muss die Unterabfrage in eine einfügenJOIN Klausel, da es mehr als eine Spalte auswählt und sie in dieSELECT Klausel erlaubt das nicht, da es mir einen Fehler eines Operanden gibt. Egal, das ist meine Frage:

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

Nun das Wichtige was ich hier brauche ...FOR EACH Kategorie möchte ich in jeder Kategorie den neuesten Post- und Thementitel anzeigen. Diese select-Anweisung durchläuft jedoch INNERHALB einer foreach-Schleife die allgemeinen Kategorien, die sich in meinem main_cat befindet. Es gibt also 5 Hauptkategorien mit 3-8 Unterkategorien. Dies ist die Unterkategorienabfrage. ABER FÜR JEDE Unterkategorie muss ich den neuesten Beitrag abrufen. Es wird jedoch nur diese SELECT-Abfrage für jede Hauptkategorie ausgeführt, sodass nur DER NEUESTE Beitrag aus allen Unterkategorien ausgewählt wird. Ich möchte den neuesten Beitrag für JEDE Unterkategorie abrufen , aber ich führe diese Abfrage lieber nicht für jede Unterkategorie aus ... da ich möchte, dass die Seite schnell geladen wird. ABER ERINNERN SIE SICH, dass einige Unterkategorien KEINEN neuesten Beitrag haben, da einige von ihnen möglicherweise noch nicht einmal ein Thema enthalten! Also also die Linke mitmachen.

Weiß jemand, wie man das macht?

Übrigens gibt es einen Fehler, den es mir gibt(WHERE ft.cat_id = c.id) in der Unterabfrage weilc.id ist eine unbekannte Spalte. Aber ich versuche es aus der äußeren Abfrage heraus zu referenzieren, kann mir jemand auch in dieser Angelegenheit helfen?

Vielen Dank!

Alle Tabellen:

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'

Die Hauptkategorien sind in einer Funktion aufgelistet. Ich habe sie nicht in der Datenbank gespeichert, da es eine Verschwendung von Speicherplatz war, da sie sich nie ändern. Es gibt jedoch 7 Hauptkategorien.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage