2010-05-11 134 views
1

2表限制:MySQL的 - 從兩個連接的表

name 
id | title 

content 
name | title 

一個名字有幾個內容。 name.id〜content.name

我需要得到3個名字的所有內容。

SELECT name.title, content.title 
FROM name LEFT JOIN content ON name.id = content.name 
LIMIT 3 

結果在3項內容,而不是名字

是否有可能有一個查詢做到這一點?

回答

1

試試這個:

SELECT name.title, content.title, content.name 
FROM name LEFT JOIN content ON name.id = content.name 
LIMIT 0, 3 

此外,您還需要使用一個alias因爲你選擇兩個title領域:

SELECT (name.title) as name_title, content.title, content.name 
FROM name LEFT JOIN content ON name.id = content.name 
LIMIT 0, 3 

更新:

我想你只需要name字段,只要我可以從你的評論中找出,試試這個:

SELECT content.name 
FROM name LEFT JOIN content ON name.id = content.name 
LIMIT 0, 3 
+0

+1提的別名。這肯定清除它 – espais 2010-05-11 14:07:17

+0

問題是,我不知道我應該有多少個結果得到的。我需要3個名字,但它們可以包含3到∞的內容 – Qiao 2010-05-11 14:09:29

+0

@Qiao:這應該返回三行,並且有三個名字,因爲您已經設置了「LIMIT 0,3」,它將只返回三行。 – Sarfraz 2010-05-11 14:13:32

1
SELECT content.name, content.title 
FROM name LEFT JOIN content ON name.id = content.name 
LIMIT 0, 3 
1

子查詢?

SELECT name.title, content.title 
FROM name LEFT JOIN content ON name.id = content.name 
WHERE name.id IN (SELECT name.id FROM name LIMIT 3)