Mam 3 tabele:
KLIENT, CECHA, CECHA_KLIENT
w KLIENT mam: id_klienta, imie, nazwisko, adres
w Cecha mam: id_cechy, nazwa_cechy
w CECHA_KLIENT mam: id_ck, ck_id_klienta, ck_id_cechy
Jeden klient możne mieć wiele cech.
Chce zobaczyć klientów z cech± 1 daje zapytanie:
SELECT [id_klienta],[imie],[nazwisko],[adres] FROM [klient] LEFT JOIN [cecha] ON ck_id_klienta = id_klienta WHERE ck_id_klienta = 1
SELECT [id_klienta], [imie], [nazwisko], [adres] FROM [klient] LEFT JOIN [cecha] ON ck_id_klienta = id_klienta AND ck_id_klienta !=2 WHERE ck_id_klienta = 1
1. Operator <> a nie !=
2. Nie tak... Najpro¶ciej będzie jak zrobisz NOT IN (SELECT id_klienta FROM pierwsze_zapytanie)
Co¶ się tu kupy nie trzyma:
SELECT [id_klienta],[imie],[nazwisko],[adres] FROM [klient] LEFT JOIN [cecha] ON ck_id_klienta = id_klienta WHERE ck_id_klienta = 1
SELECT [id_klienta],[imie],[nazwisko],[adres] FROM [klient] JOIN [cecha_klient] ON ck_id_klienta = id_klienta WHERE ck_id_cechy = 1
SELECT [id_klienta],[imie],[nazwisko],[adres] FROM [klient] JOIN [cecha_klient] c1 ON c1.ck_id_klienta = id_klienta AND c1.ck_id_cechy = 1 LEFT JOIN [cecha_klient] c2 ON c2.ck_id_klienta = id_klienta AND c2.ck_id_cechy = 2 WHERE c2.id_ck IS NULL
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)