J'ai 3 tables News, News_tag et Tag, News_tag beaucoup à beaucoup de relation entre les nouvelles et Tag. Je veux que la requête sql obtienne toutes les balises avec le nombre de nouvelles correspondant. S'il vous plaît aider.Joindre de plusieurs à plusieurs tables
Répondre
SELECT COUNT(*) as news_count, t.*
FROM Tag t
LEFT OUTER JOIN News_Tag nt
ON t.id = nt.tag_id
GROUP BY t.id
Ne pas oublier la jointure externe pour avoir l'étiquette avec 0 nouvelles.
Sans connaître les structures des tables, il est difficile de donner une réponse. Vous voulez probablement quelque chose comme ça?
select news.subject, tag.subject
from news, news_tag, tag
where news.id = news_tag.news
and news_tag.tag = tag.id
order by tag.subject
Essayez d'améliorer votre taux d'acceptation.
-1, la jointure implicite est mauvaise! –
@ Scorpi0: Pour moi, downvoting jointures implicites semble plus mal que les jointures eux-mêmes. Eh bien, trop dur, de toute façon, puisque la solution fonctionne **. –
de travail! = Bon ... –
En supposant qu'il ya une colonne nommée tag
dans les deux Tag
et News_tag
, et que vous cherchez le nombre de News
articles pour chaque Tag
:
SELECT Tag.tag, COUNT(*)
FROM Tag
INNER JOIN News_tag ON News_tag.tag = Tag.Tag
GROUP BY Tag.tag
J'ai besoin de connaître les coloumns pour vous dire exactement syntaxe cependant, il ressemblera à quelque chose comme;
SELECT TagName, COUNT(*)
FROM Tag t
INNER JOIN NEws_tag tn
ON t.TagID = tn.TagID
INNER JOIN News n
ON n.NewsID = tn.NewsID
GROUP BY TagName
Regardez ici pour deatails de la syntaxe http://dev.mysql.com/doc/refman/5.0/en/join.html
Je pense que vous vouliez dire n.NewsID = tn.NewsID –
SELECT COUNT(*)
FROM news AS n
LEFT JOIN (news_tag AS nt, tag AS t)
ON (
nt.tag_id = t.tag_id
AND
nt.news_id = n.id
)
WHERE (
t.tag
IN (
'$tag'
)
)
'Je veux que la requête sql obtienne toutes les balises avec le compte de nouvelles correspondant' vous avez le nombre, mais pas les balises de nouvelles. – Johan
Sa réponse a été difficile pour moi de lire, je l'ai lu comme il veut le nombre de nouvelles données une étiquette. Je le réécrirais mais la réponse de Scorpi0 est déjà géniale. –
- 1. MySQL: Joindre plusieurs tables
- 2. MySQL Joindre plusieurs tables
- 3. SQL joindre plusieurs tables
- 4. Comment joindre plusieurs tables?
- 5. Joindre plusieurs tables
- 6. Comment joindre plusieurs tables?
- 7. Comment joindre plusieurs conditions sur plusieurs tables
- 8. MYSQL joindre plusieurs tables fois
- 9. SQL Inner Joindre plusieurs tables
- 10. Joindre plusieurs tables (Condition spéciale)
- 11. Entité pour joindre plusieurs tables
- 12. comment joindre plusieurs tables sqlite
- 13. requête Linq joindre plusieurs tables
- 14. Comment joindre (fusionner?) Plusieurs tables?
- 15. intérieur se joindre à plusieurs tables
- 16. intérieur se joindre à plusieurs tables
- 17. joindre plusieurs tables à gauche se joignent
- 18. joindre plusieurs tables à la fois:
- 19. joindre plusieurs colonnes de 3 tables
- 20. Joindre des données de plusieurs tables
- 21. CodeIgniter joindre plusieurs à plusieurs LIMIT
- 22. linq compter avec joindre sur plusieurs tables
- 23. Requête MySQL pour joindre plusieurs tables
- 24. Requête SQL Server joindre plusieurs tables
- 25. Joindre plusieurs (4) tables dans MYSQL
- 26. optimisation pour joindre plusieurs tables dans mysql
- 27. critères avec plusieurs tables Désireuse joindre
- 28. Comment joindre plusieurs tables avec managedQuery?
- 29. Comment joindre plusieurs tables dans PHALCON FRAMEWORK
- 30. Nhibernate joindre des tables par plusieurs colonnes
Je veux maintenant avec un tag combien de nouvelles associées. –
Nerses S'il vous plaît ne pas oublier d'accepter les réponses qui vous aide! –