【问题标题】:create complex sql query [closed]创建复杂的sql查询[关闭]
【发布时间】:2013-09-01 12:33:06
【问题描述】:

我有 3 张桌子:

TB1:

ID   Name     
1    R
2    F
3    B

TB2:

ID1     
1
2      
1      
2      
2      

TB3:

ID1   Stat
1     20
2     10 
3     20

我需要一个 SQL 查询来返回以下规范:

  1. id ,来自 TB1 的名称和来自 TB2 的行数
  2. TB3 中 stat=20 的行
  3. TB2 中重复的行数

输出:

ID    Name    Count
1     R       2
3     B       0

谢谢

【问题讨论】:

    标签: sql select


    【解决方案1】:
    select a.id, a.name, count(b.id1) 
    from table1 a join table3 c 
    on a.id = c.id1 and c.stat = 20 
    left join table2 b on a.id = b.id1 
    group by a.id, a.name
    

    【讨论】:

      【解决方案2】:
      SELECT TB1.ID,
             TB1.Name,
             SUM(CASE WHEN TB2.ID1 IS NULL THEN 0 ELSE 1 END) AS Repeat
      FROM   TB1 
             JOIN TB3
                 ON TB1.ID = TB3.ID1
                 AND TB3.STAT = 20
             LEFT JOIN TB2
                 ON TB1.ID = TB2.ID1
      GROUP BY TB1.ID,
             TB1.Name,
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-07
        • 2017-02-18
        • 1970-01-01
        • 2012-05-12
        相关资源
        最近更新 更多