Dwie tabele:
Hardware
HardID
Software
SoftID
HardID
W pierwszej tabeli trzymam sprzet a w drugiej tabelki trzymam oprogramowanie dla tego sprzetu. Jeden sprzet moze miec klika oprogramowan co realizawane jest w tabeli Software.
Teraz moj problem polega na tym iz potrzebuej napisac zapytanie ktore pokaze mi wszystkie komputery ktore NIE posiadaja danego oprogramowania.
Zalozmy ze Windows XP ma SoftID = 20.
SELECT h.HardID FROM hardware AS h, cthardtosoft AS s WHERE h.HardID = s.HardID AND s.SoftID != '20' GROUP BY h.HardID
Cos takiego generuje mi zle dane a to z tego wzgledu iz zapytanie owszem eliminuje rekordy z tabeli ktore posiadaja SoftID = 20 ale jezeli dany sprzet posiada tez jakies inne oprogramowanie to tak czy siak zostanie wyswietlony a nie powinien. Probowalem tez z LEFT JOINAMI ale nim mi to nie pomoglo.
Dodam jeszcze iz wartosci SoftID moze byc kilka, co realizuje wyszukwanie sprzetu ktory nie posiada kilku oprogramowan.
czyli ...
- jezeli w wyszukiwarce zaznacze ze NIE chce corela to ma nie wyswietlac tych co nie maja corela
- a jezeli w wyszukiwarce zaznacze ze ma nie miec corela ORAZ xp to ma nie wyswietlac tych co nie maja i tego i tego
Chce dzieki temu uzyskac informacje ile licencji mam dokupic ... tak to mozna sobie tlumaczyc.