我有這樣的表:JOIN多個表與在同一列上的結果
表1
--------------------
id | category
--------------------
1 | Cat1
2 | Cat2
3 | Cat3
對於每個類別,我與子類別的表,和對應的類別ID,如下所示:
表2
--------------------------------
id | subcategory | category_id
--------------------------------
1 | subcat1 | 1
2 | subcat2 | 1
3 | subcat3 | 1
4 | subcat4 | 1
表3
--------------------------------
id | subcategory | category_id
--------------------------------
1 | subcat5 | 2
2 | subcat6 | 2
3 | subcat7 | 2
4 | subcat8 | 2
我想查詢我的數據,所以我得到如下:
-----------------------------------------------------
category | subcategory (from Table2 and Table3)
-----------------------------------------------------
Cat1 | subcat1
Cat1 | subcat2
Cat1 | subcat3
Cat1 | subcat4
Cat2 | subcat5
Cat2 | subcat6
Cat2 | subcat7
Cat2 | subcat8
Cat3 | NULL
我想這樣的事情,但它把數據從每個表上的一個新列。
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
我是初學者。
謝謝!
T1 LEFT JOIN(T2 UNION ALL T3) – jarlh
這是一個可怕的設計,爲什麼每個類別,而不僅僅是一個表一個表? – Lamak
@拉馬克是對的。如果您可以更改數據庫設計,請立即執行,並將所有子類別僅放入1個表格中。 – Woozar