如何在2个表中进行左外部联接组

时间:2018-12-25 09:42:42

标签: sql sql-server database group-by

需要将2个具有外部联接关系的表分组。

 select * from Sites
 LEFT OUTER JOIN SiteToEmps ON Sites.Id = SiteToEmps.SiteId 
 GROUP BY Sites.Id

我需要写语法。

2 个答案:

答案 0 :(得分:1)

主要技巧是“ group by列表中包括的任何非聚合列也应包括在select列表中”例如

SELECT s.Id
  FROM Sites s
  LEFT OUTER JOIN SiteToEmps e
    ON s.Id = e.SiteId
 GROUP BY s.Id

答案 1 :(得分:1)

您应该使用GROUP BY语法在两个表中都包含所有字段。 会是这样的:

 select * from Sites
 LEFT OUTER JOIN SiteToEmps ON Sites.Id = SiteToEmps.SiteId 
 GROUP BY Sites.Id, Field2, Field3, Field4

或者您应该编写要包含在GROUP BY语法中的任何字段,而不是*。会是这样的:

select Sites.Id from Sites
LEFT OUTER JOIN SiteToEmps ON Sites.Id = SiteToEmps.SiteId 
GROUP BY Sites.Id