W dniu 29.05.2012 11:50, Marcin napisał(a):
witam chce z bazy wyciągnąć komputery, które są odłączone oraz nie należą do grupy vip(15), Firmy(4). mam zapytanie:
SELECT LOWER(n.name [1]) AS name, n.access AS acc, inet_ntoa(n.ipaddr) AS ip FROM nodes n, customers c, customerassignments ca WHERE n.access = 0 AND (n.ipaddr BETWEEN inet_aton(192.168.0.2) AND inet_aton(192.168.2.255) ) AND c.id [2] = n.ownerid AND ca.customerid=c.id [3] AND ca.customergroupid NOT IN(15,4)
niestety jeśli host należy do jeszcze jakiejś grupy to też go w wyniku uwzględnia. wszystko jest ok jeśli user należy tylko do jednej grupy. chodzi o to, że jeśli host należy do której kolwiek z grup (15,4) to nie należy to uwzględniać w wyniku. nie jestem dobry w sql to też stąd mój problem :(
podrzuci ktoś zapytanie? z góry dzięki
Ja bym nie składał tabel w FROM, ale w WHERE zrobił podzapytanie: AND NOT EXISTS (SELECT id FROM customerassignments ca WHERE ca.customergroupid IN (15,4)).