Ich habe diese Tabelle:JOIN mehrere Tabellen mit Ergebnissen auf der gleichen Spalte
Table1
--------------------
id | category
--------------------
1 | Cat1
2 | Cat2
3 | Cat3
Für jede Kategorie, ich habe Tabellen mit Unterkategorien, und die entsprechende Kategorie-ID, wie folgt aus:
Table2
--------------------------------
id | subcategory | category_id
--------------------------------
1 | subcat1 | 1
2 | subcat2 | 1
3 | subcat3 | 1
4 | subcat4 | 1
Table3
--------------------------------
id | subcategory | category_id
--------------------------------
1 | subcat5 | 2
2 | subcat6 | 2
3 | subcat7 | 2
4 | subcat8 | 2
Ich möchte, dass meine Daten abzufragen, so dass ich die folgenden:
-----------------------------------------------------
category | subcategory (from Table2 and Table3)
-----------------------------------------------------
Cat1 | subcat1
Cat1 | subcat2
Cat1 | subcat3
Cat1 | subcat4
Cat2 | subcat5
Cat2 | subcat6
Cat2 | subcat7
Cat2 | subcat8
Cat3 | NULL
ich so etwas wie dies versucht, aber es stellt die Daten aus jeder Tabelle auf einer neuen Spalte.
SELECT Table1.category, Table2.subcategory , Table3.subcategory
FROM Table1
LEFT JOIN Table2 ON Table1.id=Table2 .category_id
LEFT JOIN Table3 ON Table1.id=Table3.category_id
Ich bin ein Anfänger.
Vielen Dank!
t1 links (t2 UNION ALL t3) beitreten – jarlh
Dies ist eine schreckliche Design hat, warum pro Kategorie eine Tabelle statt nur eine Tabelle? – Lamak
@Lamak hat Recht. Wenn Sie das Design der Datenbank ändern dürfen, tun Sie dies JETZT und legen Sie alle Unterkategorien nur in einer Tabelle ab. – Woozar