Dnia 3-08-2010 o godz. 10:44 Maciej Dylski napisał(a):
Dnia 2-08-2010 o godz. 21:55 Michał "gaco" Gacek napisał(a):
tabele ktore cie interesuja to tariffs i customerassignments, lecisz po node powiazujesz po ownerid customerassignments, a z tego id tariffs gdzie sa ceile ratey i inne :)
Wygląda sensownie (tylko tabela powinna byc chyba assignments a nie
cutomerassignments? :) )
Skleciłem już coś pokazującego wyniki, ale nie do końca działa jak powinno.
takie zapytanie:
SELECT nod.id,nod.name,INET_NTOA(nod.ipaddr), nod.ownerid, ass.id, ass.tariffid, tar.upceil, tar.downceil
FROM (SELECT * FROM nodes WHERE ownerid<>0) AS nod LEFT JOIN assignments AS ass
ON nod.ownerid = ass.customerid LEFT JOIN tariffs AS tar ON ass.tariffid = tar.id
WHERE nod.ownerid = ass.customerid ORDER BY `nod`.`ownerid` ASC
generuje min. takie wyniki:
id name INET_NTOA(nod.ipaddr) ownerid Rosnąco id tariffid upceil downceil
1662 MD-TEST 192.168.21.233 1 2526 2 2000 4500
1662 MD-TEST 192.168.21.233 1 2551 46 1000 2000
1663 MD-TEST2 192.168.21.234 1 2526 2 2000 4500
1663
MD-TEST2 192.168.21.234 1 2551 46 1000 2000
Co źle zrobiłem, że są powtórzenia?
I wogóle, czy takie zapytanie jest zgodne "ze sztuką" ? :)
Pozdrawiam