Mam tabelki:
board_topic -> id,id_autora_tematu,id_autora_ostaniego_posta
user -> id,name
Nazwy są intuicyjne, mimo tego wyjaśnię:
Pierwsza przechowuje id tematu, id użytkownika który założył temat, i id użytkownika który jako ostatni wypowiedział się w temacie.
Problem pojawia się kiedy chce pobrać 20 rekordów. Wykombinowałem to tak:
SELECT board_topic.topic ,user.name FROM board_topic LEFT JOIN user ON user.id = board_topic.id_autora_tematu OR user.id = board_topic.id_autora_ostaniego_posta LIMIT 20 // wynik 1. Przykładowy temat numer 1 | Michał //autor tematu 2. Przykładowy temat numer 1 | Maciek //autor ostatniego postu 3. Przykładowy temat numer 2 | Monika //autor tematu 4. Przykładowy temat numer 2 | Maciek //autor ostatniego postu
Jak widać każdy z tematów występuje 2 razy, i jest to zrozumiałe -> tak skonstruowane jest zapytanie.
Jest jakiś inny sposób aby złączyć tabele w sposób: jednemu rekordowi z jednej dołączamy 2 z innej tabeli ?
//----------------------------------------------
Coś nie daję rady z tym SQL dzisiaj

Mam tabele z tematami -> które podzieliłem na kategorię. I chce pobrać po 20 rekordów z każdej.
SELECT * FROM board_topic WHERE category =`help` LIMIT 20 SELECT * FROM board_topic WHERE category = `question` LIMIT 20 SELECT * FROM board_topic WHERE category = `question` LIMIT 20
Oczywiście mogę to zrobić jak wyżej z 3 SELECT wykorzystując multipleQuery. Ale da się to zrobić lepiej ? optymalniej ? może w 1 zapytaniu ?