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.