1

Temat: Pomoc w napisaniu selecta

Mam taką tabelę:

X | Y
------

3   | 1
3   | 2

5   | 1

8   | 2

12 | 1
12 | 1

55 | 2
55 | 2

64 | 1
64 | 1
64 | 2



Chciałbym wybrać tylko takie wiersze:

3   |1
3   |2
bo mam X = 3, a dla niego dwie różne wartości Y

64 | 1
64 | 1
64 | 2
bo mam X = 64, a dla nich dwie różne wartości Y,


ale nie chcę wybierać wierszy:

5   | 1

8   | 2

12 | 1
12 | 1

55 | 2
55 | 2

bo przykładowo mam X = 55, ale tylko jedną wartość Y=2.

------------------------------

Jakiego selecta mam napisać ?
Proszę o pomoc.

2

Odp: Pomoc w napisaniu selecta

Chyba tak:

select x from tabela where y = 1 intersect select x from tabela where y =2

i to nam da iksy, a jak mamy iksy to już wyciągniemy i całe wiersze.

3

Odp: Pomoc w napisaniu selecta

można jeszcze tak, choć twój sposób jest bardzo dobry
select distinct x from tabela t where y=1 and exists (select 1 from tabela where x=t.x and y=2);
lub
select distinct x from tabela t1 join tabela t2 on t1.x=t2.x and t2.y=2 where t1.y=1;

PS distinct dopisuje bo nie wiem czy zestaw danych x, y w tabeli jest unikatowy