2010-05-11 2 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 

Update:

Я думаю, вам нужно только поле name, насколько я мог понять из вашего комментария, попробуйте следующее:

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

+1 за упоминание псевдонима ... это определенно очищает его – espais

+0

проблема заключается в том, что я не знаю, сколько результатов я должен получить. Мне нужно 3 имени, но они могут содержать от 3 до ∞ содержимого – Qiao

+0

@Qiao: это должно возвращать три строки и там три имени, потому что вы уже настроили 'LIMIT 0, 3', который вернет только три строки. – Sarfraz

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

Subquery?

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) 
Смежные вопросы