2011-11-05 65 views
0

我被困試圖通過在兩個不同的表中的信息相結合,建立我的數據庫查詢的信息結合起來:MySQL查詢:試圖兩個表

第一個被稱爲item_distribution,有兩列:一個對於folder_ID和另一個對於item_ID

而第二個被稱爲item_tags並且有兩列:一個用於tag_ID,另一個用於item ID

讓我們想象的情況:

在第一個表,我有以下信息(哪些項目是在文件夾中):

folder_ID  item_ID 
00001   00001 
00001   00002 
00001   00003 
00002   00004 
00001   00005 
00001   00006 

而在第二個表,以下行(哪些項目具有標籤):

tag_ID   item_ID 
00001   00001 
00002   00001 
00003   00001 
00001   00002 
00003   00002 
00001   00003 
00002   00003 
00001   00004 
00001   00005 
00002   00005 

我怎麼能得到所有這些都在文件夾00001,並有兩個標籤00001和項目的不同item_ID 00002?只有一個查詢表達式可能嗎?

非常感謝!

奧里奧爾

回答

1

我認爲這將工作:

select distinct f.item_ID 
from folders f 
join tags t1 on f.itemID = t1.item_ID and t1.tag_ID = '00001' 
join tags t2 on f.itemID = t2.item_ID and t2.tag_ID = '00002' 
where f.folder_ID = '00001' 
+0

謝謝你的快速回答!它工作正常! – user597009

+1

@ user597009不客氣。請考慮通過點擊旁邊的複選標記來接受(和/或向上投票)正確答案。你應該對你提出的所有問題都做到這一點,並得到正確答案。 – Fosco

-1

如果要列出所有使用此:

SELECT * 
FROM item_distribution ID 
LEFT JOIN item_tags IT ON ID.item_ID = IT.item_id; 

,將返回這兩個表連接在一起。

您可以在連接後添加where子句以縮小結果(例如,每個文件夾或每個項目)。

WHERE ID.folder_ID = '00001'; 
+0

爲什麼這會被投票?! – SVBokenham