我有一张桌子
process
包含文件id
,fk_object
和status
。
例如
id| fk_object | status
----------------------
1 | 3 | true
2 | 3 | true
3 | 9 | false
4 | 9 | true
5 | 9 | true
6 | 8 | false
7 | 8 | false
我希望找到id
分组的所有行status
的{{1}}。
在此示例中,它应返回fk_object
s id
,因为3, 4, 5
fk_object
现有9
status
和{ {1}}而另一个只有一个。
答案 0 :(得分:2)
这将获取具有该属性的fk_object
值:
select fk_object
from process
group by fk_object
having min(status) <> max(status);
您可以使用join
:
select p.*
from process p join
(select fk_object
from process
group by fk_object
having min(status) <> max(status)
) pmax
on p.fk_object = pmax.fk_object;
答案 1 :(得分:1)
Select id from process
where fk = ( select fk from process where status in ('true','false'));
答案 2 :(得分:1)
股票回应如下......
SELECT ... FROM ... WHERE ... IN ('true','false')... GROUP BY ... HAVING COUNT(DISTINCT status) = 2;
其中'2'等于IN()
中的参数个数