J'ai ces données.
SELECT id FROM tbl_data WHERE value = 'A' AND value = 'B'
3 Réponses :
select id from table
where
value in ('A', 'B')
group by id
having count( distinct value ) = 2
Pouvez-vous expliquer cette partie? comptez (valeur distincte) = 2 code> signifie-t-il que si je veux sélectionner A, B et C, et que cela deviendra = 3 code>?
signifie-t-il que si je veux sélectionner A, B et C, il deviendra = 3 code>, oui, c'est correct
@YUSUFMM - Vous avez juste besoin de C code> dans où code> clause aussi, où la valeur dans ('a', 'b', 'c') code>
Une alternative à la solution de @otar consiste à utiliser un CTE code>
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)
Vous pouvez simplement exécuter ce qui suit:
SELECT min(id) FROM table WHERE value in ('A','B');
Vous pouvez utiliser min (id).
Y a-t-il une une ligne simple b> qui contient à la fois
A code> etB code> dans la même colonne?@Nicohaase non, la valeur toujours un caractère A ou B ou C.
Quel est le problème avec l'utilisation de
ou code> alors?@Samchats, il retournera ID 1 et 2.
@Yusufmm, je l'ai eu, mon mauvais.