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