每组右表的左外连接?
Posted
技术标签:
【中文标题】每组右表的左外连接?【英文标题】:Left Outer Join With Per Group of Right table? 【发布时间】:2016-03-11 22:09:20 【问题描述】:我有两张桌子,L
和 R
。
我想在L
和R
中的每组行之间有一个Left Outer join
。
更清楚的是,左表中的所有行,必须在每组右行的结果集中。
SQL 中最好的查询是什么?
【问题讨论】:
到目前为止你累了什么? 我在左表中的行,必须与右行中的每个组耦合。我的左表是一个月中的几天,右表是员工的存在。我想展示每一天,发生了什么! 【参考方案1】:我通过CROSS JOIN
运营商解决它。
表 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
结果:
【讨论】:
以上是关于每组右表的左外连接?的主要内容,如果未能解决你的问题,请参考以下文章