我有一个包含以下列的sql表 id
作为 PK
, ip
,
check_type check_status
:
id ip check_type check_status
1 10.10.10.10 check1 FAIL
2 10.10.10.10 check2 PASS
3 10.10.10.11 check1 PASS
4 10.10.10.11 check2 PASS
我只想要 ips
有哪些 Failed Check1 and Passed Check2
从table上。所以,从上面的例子中,我的输出应该是 10.10.10.10
```
SELECT DISTINCT
(ip)
FROM table1 a
INNER JOIN table1 b
ON a.ip = b.ip
WHERE a.check_status = 'FAIL'
AND a.check_type = 'check1'
AND b.check_status = 'PASS'
AND b.check_type = 'check2';
我犯了个错误
列ip不明确
2条答案
按热度按时间enxuqcxy1#
使用条件聚合:
另一种稍微优雅一点的mysql工作方式:
下面是第二个查询的演示,由@mkhalid提供
piok6c0g2#
这会有用的
你正在选择的ip是在a和b,所以它是给错误,所以当你写a.ip或b.ip它将正常工作