如何在同一 table 的同一列中使用 WHERE 查询?

How to use WHERE query at same column in same table?

我有这个数据。

tbl_data

id    value
1       A
1       B
1       C
2       A
2       C

我想要 select id,其中 'A' 和 'B' 作为值。

SELECT id FROM tbl_data WHERE value = 'A' AND value = 'B'

但它 return 结果为零。

如何进入 return id 1?

select id from table 
where
value  in ('A', 'B')
group by id 
having count( distinct value ) = 2

@OTAR 的另一种解决方案是使用 CTE

CREATE TEMPORARY TABLE t ( ID INT, value TEXT);
INSERT INTO t VALUES 
(1,'A'),(1,'B'),(1,'C'),(2,'A'),(2,'C'),(2,'F');


WITH j AS (
  SELECT id,array_agg(value) AS arr
FROM t GROUP BY id)
SELECT * FROM j
WHERE arr @> ARRAY['A','B'];

 id |   arr   
----+---------
  1 | {A,B,C}
(1 Zeile)

您可以简单地执行以下操作:

SELECT min(id) FROM table WHERE value in ('A','B');