左外连接每组右table?
Left Outer Join With Per Group of Right table?
我有两个 table,L
和 R
。
我想在 L
和 R
中的每组行之间有一个 Left Outer join
。
更清楚的是,左边的所有行 table,必须在每组右边行的结果集中。
SQL 中最好的查询是什么?
我用CROSS JOIN
算子解决了。
table大号:
Table 回复:
我的查询:
声明@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
结果:
我有两个 table,L
和 R
。
我想在 L
和 R
中的每组行之间有一个 Left Outer join
。
更清楚的是,左边的所有行 table,必须在每组右边行的结果集中。
SQL 中最好的查询是什么?
我用CROSS JOIN
算子解决了。
table大号:
Table 回复:
我的查询: 声明@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
结果: