MySQL的 - 从两个连接的表

问题描述:

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项内容,而不是名字

是否有可能有一个查询做到这一点?

试试这个:

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

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

子查询?

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)