SQL podzapytanie NOT IN

SQL podzapytanie NOT IN
TH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Cześć,
mam dwie tabele: transakcje i dane_osobowe, w każdej z nich znajduje się pole id_klienta.
Moim zadaniem jest wybrać id_klientów którzy nie dokonali zakupów (ci których id nie widnieje w tabeli transakcje ale istnieje w tabeli dane_osobowe).
Próbowałem takiego zapytania:

Kopiuj
SELECT id_klienta
FROM dane_osobowe 
WHERE id_klienta NOT IN (SELECT DISTINCT id_klienta FROM transakcje) 

ale wyrzuca mi za dużo wyników (ok. 600 zamiast 3. (podpunkt z próbnej matury 2015 => mam odpowiedzi.)).
Może da się to zrobić inaczej?
(Używam Microsoft Access 2007-2010)

GS
  • Rejestracja: dni
  • Ostatnio: dni
0

na bazie Firebird zapytanie zwraca prawidłowy wynik

gośćabc
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 500
1

edit:

Kopiuj
SELECT id_klienta FROM dane_osobowe
WHERE NOT EXISTS (SELECT 1 FROM transakcje WHERE dane_osobowe.id_klienta = transakcje.id_klienta)
TH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

edit:
Po zliczeniu ilości różnych od siebie id w obu tabelach wyszła różnica taka jaka wychodzi z twojego zapytania, wielkie dzięki za pomoc :).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.