X
-----------------------
id | atrybut1 | atrybut2
1 | 1 | 5
2 | 3 | 6
3 | 4 | 7
Y
----------------------
id | klucz | atrybut2
1 | 1 | 1
2 | 2 | 2
Problem jest taki:
Chce wyświetlić tylko te rekordy z tablicy X których klucz główny nie występuje w Y.klucz
oraz spełniony jest warunek Y.atrybut2 != 1.
Zapytanie:
SELECT x.* FROM x LEFT JOIN y ON x.id = y.klucz WHERE y.atrybut2 !=1
Działa błędnie ponieważ jeśli tablica y jest pusta to LEFT JOIN wstawia w miejsce y.klucz wartosc NULL i zapytanie zwraca pusty wynik. a powinno wszystkie rekordy z tablicy X.
Z góry dzięki za odpowiedzi