Sql 每组右表的左外部联接?
我有两张表,Sql 每组右表的左外部联接?,sql,group-by,outer-join,Sql,Group By,Outer Join,我有两张表,L和R 我想在L与R中的每组行之间有一个左外连接 更清楚的是,左表中的所有行都必须位于每组右行的结果集中 SQL中最好的查询是什么?我通过交叉连接操作符来解决它 表L: 表R: 我的问题是: 声明@userid int 设置@userid=null SELECT T.Id, T.Name,T.UserId,R.Val FROM ( SELECT L.Id, L.Name,R.UserId
L
和R
我想在L
与R
中的每组行之间有一个左外连接
更清楚的是,左表中的所有行都必须位于每组右行的结果集中
SQL中最好的查询是什么?我通过交叉连接操作符来解决它
表L:
表R:
我的问题是:
声明@userid int
设置@userid=null
SELECT T.Id, T.Name,T.UserId,R.Val
FROM
(
SELECT L.Id, L.Name,R.UserId
FROM
(SELECT DISTINCT UserId FROM R ) R
CROSS JOIN L
)T
LEFT OUTER JOIN R
ON (T.Id = R.DayId AND T.UserId = R.UserId)
where @userid is null or T.userid=@userid
结果是:
到目前为止,您累了什么?我在左表中的行必须与右行中的每组相结合。我的左表是一个月的天数,右表是员工的出席情况。我想展示每一天,发生了什么!