2010-05-11 6 views
1

2 tables:MySQL - limite de deux tables reliées

name 
id | title 

et

content 
name | title 

Un nom a plusieurs contenus. name.id ~ content.name

Je dois obtenir 3 noms avec tout leur contenu.

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

résultat en 3 contenus, pas les noms

Est-il possible de le faire avec une requête?

Répondre

1

Essayez ceci:

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

En outre, vous devez utiliser un alias parce que vous sélectionnez deux title champs:

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

Mise à jour:

Je pense que vous avez besoin seulement le champ name autant que je pourrais comprendre à partir de votre commentaire, essayez ceci:

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

+1 pour mentionner l'alias ... ce problème, il vous – espais

+0

certainement que efface je ne sais pas combien de résultats dois-je obtenir. J'ai besoin de 3 noms, mais ils peuvent contenir de 3 à 0 contenus – Qiao

+0

@Qiao: cela devrait retourner trois lignes et il y a trois noms parce que vous avez déjà configuré 'LIMIT 0, 3' qui ne retournera que trois lignes. – Sarfraz

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

sous-requête?

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)