2010-06-08 24 views
0

我正在構建一個文章系統,每篇文章都會有一個與它相關的標籤(類似於本網站上的標籤)。非線性數據庫檢索

的表設置是這樣的:

Article_Table 
    Article_ID | Title | Author_ID | Content | Date_Posted | IP ... 

Tag_Table 
    Tag_ID | Name ... 

Tag_Intersect_Table 
    Tag_ID | Article_ID 

是否可以查詢的文章及其所有相關聯的標誌在一個數據庫調用?如果是這樣,這是如何完成的?

回答

2

你在尋找所謂的SQL一個JOIN

SELECT 
    Article_ID, Title, TT.Name as 'Tag_Name' 
    FROM 
    Article_Table AT 
    INNER JOIN Tag_Intersect_Table TI 
     ON AT.article_id = TI.article_id 
    INNER JOIN Tag_Table TT 
     ON TI.tag_id = TT.tag_id 
    WHERE 
    article_id = @my_article_id 

連接兩個實體表到同一個路口表的自然連接語法。

請注意,在這個結果集中,每個標籤和一篇文章的組合都會有一行,所以article_id和title會反覆重複,如果您只查詢一篇文章並想要獲取所有標籤的名稱,則可以將SELECT列表限制爲TT.name

+0

+1打我吧! – RobertPitt 2010-06-08 02:22:12