【问题标题】:Left Outer Join With Per Group of Right table?每组右表的左外连接?
【发布时间】:2016-03-11 22:09:20
【问题描述】:

我有两张桌子,LR

我想在LR 中的每组行之间有一个Left Outer join

更清楚的是,左表中的所有行,必须在每组右行的结果集中。

SQL 中最好的查询是什么?

【问题讨论】:

  • 到目前为止你累了什么?
  • 我在左表中的行,必须与右行中的每个组耦合。我的左表是一个月中的几天,右表是员工的存在。我想展示每一天,发生了什么!

标签: sql group-by outer-join


【解决方案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

结果:

【讨论】:

    猜你喜欢
    • 2014-02-24
    • 2015-01-11
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多