2009-07-11 11 views
1

Une table avec des articles de blog appartenant à une ou plusieurs catégories. Maintenant, je veux sélectionner 10 postes et avoir les catégories pour chacun des messages. Cela signifie que chaque colonne est reliée à l'intérieur de la table de post-catégorie, etc.sélectionnez les publications x, quel que soit le nombre de lignes internes de la catégorie jointe

Problème: la limite 10 ne donne que 10 lignes (par exemple, une colonne de 10 catégories). Je veux avoir 10 postes différents avec toutes les catégories pour chaque poste (par exemple, si chaque poste aurait 2 catégories, il devrait renvoyer 20 lignes).

Répondre

1

Vous devez publier vos définitions de table pour que les gens vous aident beaucoup ... mais en supposant que vous avez une table "story" avec un champ "story_id" comme clé primaire et une table avec une clé étrangère à l'histoire id vous pouvez le faire:

select s.*,c.* 
from story s 
left outer join categories c 
     on c.story_id=s.story_id 
where story_id in (select story_id from story order by pub_date desc limit 10) 

le subselect retirerait les 10 plus récents histoire ids alors le principal, sélectionnez l'extérieur ne rejoindre.

Questions connexes