【问题标题】:WHERE clause in sub-query子查询中的 WHERE 子句
【发布时间】:2012-10-16 15:12:51
【问题描述】:

以下 SQL 查询:

select *  from er_101
 where cd_relnaam IN ( 
     select cd_relnaam 
     from er_101 
     group by cd_relnaam 
     having count(*) > 1)
 AND ld_relopdrachtgever = '1'

虽然我需要该子查询也限制ld_relopdrachtgever = '1'
用 HAVING 语句怎么可能?

【问题讨论】:

  • 请告诉我们您的表格结构以及您想要实现的目标,因为目前还不是很清楚。
  • 子查询没有用像主查询这样的值指定:AND ld_relopdrachtgever = '1' 我还需要在我的子查询中,否则我在结果集中得到的结果有多个值,但没有 ld_relopdrachtgever 等于1
  • 在按cd_relnaam分组之前添加WHERE Id_relopdrachtgever='1'可以做到的子查询限制。

标签: sql select subquery where-clause having-clause


【解决方案1】:

您也可以在子查询中使用WHERE

SELECT * FROM er_101
 WHERE cd_relnaam IN ( 
     SELECT cd_relnaam 
     FROM er_101 
     WHERE ld_relopdrachtgever = '1'  <--You can add WHERE clause before GROUP BY
   --^^^^^----
     GROUP BY cd_relnaam 
     HAVING COUNT(*) > 1)
 AND ld_relopdrachtgever = '1'

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2020-12-31
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多