SQL podzapytanie NOT IN

Odpowiedz Nowy wątek
2015-01-30 16:31
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:

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)

edytowany 4x, ostatnio: Thunderrock, 2015-01-30 16:37

Pozostało 580 znaków

2015-01-30 18:39
0

na bazie Firebird zapytanie zwraca prawidłowy wynik

Pozostało 580 znaków

2015-01-30 18:42

edit:

SELECT id_klienta FROM dane_osobowe
WHERE NOT EXISTS (SELECT 1 FROM transakcje WHERE dane_osobowe.id_klienta = transakcje.id_klienta)
edytowany 1x, ostatnio: gośćabc, 2015-01-30 19:07

Pozostało 580 znaków

2015-01-30 19:07
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 :).

edytowany 5x, ostatnio: Thunderrock, 2015-01-30 19:26
zrobiłem edit - gośćabc 2015-01-30 19:08
zrób sobie select count(id_klienta) na obu tabelach, potem porównaj różnice po wykonaniu tych kwerend eliminujących, wg. mnie powinno działać - gośćabc 2015-01-30 19:13

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0