Je me demandais si quelqu'un pouvait m'aider à enchaîner les jointures - je ne comprends pas le processus de réflexion.Problème avec les jointures de chaînage
An example with three tables:
ArticleCategories
-----------------
CategoryID
CategoryName
Articles
---------
ArticleID
ArticleText
CategoryID (FK)
ArticleComments
-----------------
CommentID
ArticleID (FK)
CommentText
J'ai un sp pour obtenir article d'information pour tous les articles d'une catégorie particulière, y compris un compte de commentaires pour un article, mais je pense qu'il a besoin d'amélioration. Mon combat a abouti à ceci:
With resultSet AS
(
select
a.ArticleID
, a.ArticleText
, a.CategoryID
, c.CommentCount
from Articles a
Left Outer Join
(Select count(c.CommentID) as CommentCount, c.ArticleID
from Comments c
Group BY c.ArticleID
) c
on a.ArticleID = c.ArticleID
)
select * from resultSet
where resultSet.CategoryID = 2
Comment aurais-je écrit cela? Je cherchais un moyen d'éliminer le resultSet et le select sur le resultSet.
Merci beaucoup pour toute aide Bill
Merci encore, tout, pour répondre. Pour toute autre personne ayant un petit problème avec Group BY, (pourquoi chaque colonne dans le select doit faire partie du groupe par), voici une bonne discussion: http://weblogs.sqlteam.com/jeffs/archive/2007/ 20/07/60261.aspx -BillB – BillB