Witajcie.
Prosze, naprowadzcie mnie, bo gdzies mi cos umyka :(
Potrzebuje wydobyc z bazy lms-a (1.11.9) dane w postaci:
"adres_ip, uprate, upceil, uprate_n, upceil_n, downrate, downceil, downrate_n, downceil_n, nazwa_urzadzenia"
Z czescia nie ma problemu bo robie to tak (plus kilka innych danych):
SELECT nod.id,nod.name,INET_NTOA(nod.ipaddr), nod.ownerid FROM (SELECT * FROM nodes WHERE ownerid<>0) AS nod LEFT JOIN customercontacts as kon ON nod.id = kon.customerid where customerid IN (SELECT customerid FROM customercontacts WHERE id = id) ORDER BY INET_NTOA(nod.ipaddr) ASC
Nie jestem dobry w sql-u :( i nie potrafie znalesc gdzie jest powiazanie z taryfami i ich predkosciami i jaka taryfa jest przypisana jakiemu urzadzeniu.:( (pewnie cos przeoczylem)
naprowadzcie mnie prosze na dalsza droge...
Pozdrawiam
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 :)
Powodzenia
Dnia 2010-08-03 14:13 Maciej Dylski napisał(a):
blockquote {padding-left: 1ex; margin: 0px 0px 0px 0.8ex; border-left:
#cccccc 1px solid;} p {margin: 0px;padding: 0px;}
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
niecutomerassignments? :) )
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 downceil1662 MD-TEST 192.168.21.233 1 2526 2 2000 45001662 MD-TEST 192.168.21.233 1 2551 46 1000 20001663 MD-TEST2 192.168.21.234 1 2526 2 2000 45001663
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
daj na początku select distinct ......
uczestnicy (3)
-
Maciej Dylski
-
Michał "gaco" Gacek
-
Wojciech Capek - SKANET