我确信这可能是一个非常愚蠢的问题,但是我无法从互联网上找到答案。
我正在尝试选择具有此条件的行。
如果Side既有“ Right”又有“ Left”,则选择所有行。
在这种情况下,它将同时选择ID 3和4(黄色高亮显示的那一行)。
我知道底部查询将无法正常工作。
从“表格”中选择*,其中(“边” =“右”)或(“边” =“左”)
我该怎么做?
答案 0 :(得分:2)
您需要加入。如果您的表名是进程
select
p.*
from processes p
inner join processes p2
on p.pid = p2.pid
and p.id <> p2.id
and p.side <> p2.side
答案 1 :(得分:0)
您可以使用WHERE
中的HAVING
和GROUP BY
子句对其进行过滤
SELECT *
FROM t
WHERE pid IN (
SELECT pid
FROM t
WHERE side IN (
'Right',
'Left' )
GROUP BY pid
HAVING COUNT(DISTINCT side) = 2 )