2009-09-09 98 views
0

可以說我在MySQL中有一個名爲articles的表,它有一個名爲article_id的列。我還有另一個表格,稱爲鏈接,其中有兩列名爲article_id和link。MySQL多表和多行

每一篇文章都可以附加多個鏈接,讓我們說的article_id = 2有兩個環節:

articles: 
article_id | text 
-----------+------ 
2   | blah 

links: 
article_id | url 
-----------+------ 
2   | test1 
2   | test2 

現在我想一個查詢,可以以某種方式選擇從文章的文字和鏈接網址,其中的article_id = 2在一個查詢中可能嗎?

回答

1

您需要將JOIN的表格放在一起使用article_id。 有幾種不同類型的加入 - 如果文章總是有鏈接,您可以使用INNER JOIN - 如果不可以,則可以使用LEFT JOIN,在這種情況下,url將是NULL

SELECT a.text, l.url 
FROM articles AS a 
INNER JOIN links AS l ON a.article_id = l.article_id 
WHERE a.article_id = 2 

你應該注意到,這會返回一個排的每個網址,反覆針對這些行的文章全文 - 在你的應用程序,你可以只取第一行文字。如果您的文字很大,並且每篇文章都有很多鏈接,那麼執行兩個查詢可能會更有效率 - 您必須對其進行配置才能找到。