2012-10-26 234 views
0

下面的SQL查询:WHERE子句中的子查询

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语句?

+0

请给我们您的表的结构,你想实现的,因为它现在不是很清楚。 –

+0

与像主查询的值指定的子查询的心不是: 和ld_relopdrachtgever =“1” 我还需要在我的子查询,否则我得到我的ResultSet结果有multipli值,但不能与ld_relopdrachtgever equel 1 –

+1

子查询限制你可以通过在'cd_relnaam'分组之前添加'WHERE Id_relopdrachtgever ='1''来完成。 – LSerni

回答

2

您也可以在子查询中使用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'