2012-10-01 48 views
2

我有一個標籤名稱,我需要從標籤表中獲取標籤ID,然後查找與分類標準表中的標籤ID匹配的所有ID,然後獲取所有匹配的標籤id在分類表中。我可以在1個查詢中完成所有操作嗎?還是我需要一個子查詢?這裏是數據庫結構的例子加入3個mySQL表格的最佳方式

tags database 
tid, tag 

tags taxonomy database 
id, wid, tid 

items databse 
wid, * 

我從標籤數據庫中,我需要再獲取從標籤數據庫中的TID標籤返回的所有WID的從分類數據庫,其中TID等於我們剛纔取出然後從項目數據庫返回*。我能得到這個工作運行的兩個獨立的查詢,但我希望做它在短短1 感謝

+0

請提供樣品數據和所需的輸出。 – RedFilter

回答

4

你可以只JOIN表:

select * 
from tags tg 
left join taxonomy tx 
    on tg.tid = tx.tid 
left join items i 
    on tx.wid = i.wid 

如果你不熟悉的JOIN語法這裏是一篇好文章:

Visual Explanation of JOINs

+0

很好,謝謝! – Dave

+0

+1擊敗了我。你發佈的鏈接也很漂亮。 – Aaron

0

試試這個:

SELECT * 
FROM tags t 
INNER JOIN taxonomy t2 ON t2.tid = t.tid 
INNER JOIN items i ON i.wid = t2.wid 

請注意,這將僅返回所有3個表中匹配行的數據。