2012-10-12 73 views
0

我有兩個表。一個是所有類別的列表。另一個是事物可能屬於的類別列表。一個東西可以屬於多個類別(它可能在表中的兩個以上的記錄)如果在兩個表中存在記錄,則添加一列

所以,我有

表:

categories 
1, horror 
2, romance 
3, post modern 
4, Canadian 
5, English 

... 
2340 

然後另一個表,thingsToCategories,有兩個給定一個thingID列(thingID,的categoryID)

thingID categoryID 
6323-01 1 
6323-01 4 
6323-01 5 
1342-01 2 
1342-01 4 

,我需要所有的類別清單(如SELECT * FROM表A),與TA中是否存在東西ID指示BLE乙

所以,6323-01給予thingID,我需要像這樣的列表:

1, horror selected 
2, romance 
3, post modern 
4, Canadian selected 
5, English selected 

我SQL技能是生鏽夠糟糕,我甚至不能確定什麼樣的連接使用。任何人都可以提供任何指針?

(我繼承了這個數據庫,FWIW)

+0

您可以使用視圖而不是創建表格來工作 – reggie

回答

0

我認爲你正在尋找一個INNER JOIN

SELECT * FROM categories 
INNER JOIN thingsToCategories ON categories.CategoryID = thingsToCategories.CategoryID 
WHERE thingsToCategories.thingID ='6323-01' 

INNER JOIN將確保根據匹配兩個表中的記錄進行選擇。

+0

否則,如果您使用'LEFT JOIN'並在類別上選擇,如果thingsToCategories中沒有記錄,則會顯示'NULL' – dgarbacz

+0

我回到整個Categories表*項目出現在表B中的次數 – justin

+0

我還不清楚你想要什麼樣的最終結果。你只想要類別1,4,5? – dgarbacz

相關問題