ugrás a tartalomhoz

Nagyon bonyolult MySQL lekérdezés

Velias9 · 2008. Feb. 14. (Cs), 18.40
A gondom az lenne, hogy három táblából kéne lekérdezni egyszerre.

A táblák:
tagok:
azonosito (tinyint, elsődleges kulcs)
nev (varchar(40))
...

csoportok:(kapcsolótábla)
azonosito (tinyint, elsődleges kulcs)
vezetoId (tinyint, idegen kulcs(tagok.azonosito))
tagId (tinyint, idegen kulcs(tagok.azonosito))

csoportAdatok:
azonosito (tinyint, elsődleges kulcs)
vezetoId (tinyint, idegen kulcs(tagok.azonosito))
csoportNev (varchar(250))
...

Szükségem lenne a tagok táblából az 'azonosito'-ra és a 'nev'-re és a csoportAdatok táblából a 'vezetoId'-re és a 'csoportNev'-re. Ha lehet, akkor a 'vezetoId' helyett jobb lenne a tagok táblából hozzá tartozó 'nev' érték.
Nem tudom, hogy sikerült-e körvönalazni a problémát. Itt van az, amivel én próbáltam:

$MySQLparancs = "SELECT azonosito, nev, vezetoId, csoportNev FROM
tagok, csoportok WHERE ((" . /* ide vannak felsorolva az azonositok
pl így: */"tagok.azonosito = '2' OR tagok.azonosito = '3' ..." . ")
AND csoportok.tagId = tagok.azonosito AND csoportok.vezetoId =
csoportAdatok.vezetoId)";
Szinte biztos vagyok benne, hogy gyökereiben hülyeség, ami ide van írva.
Remélem tudtok segíteni.

Előre is köszi minden segítséget!
 
1

Adatszerkezet nem az igazi...

siposa · 2008. Feb. 14. (Cs), 18.55
Vezetoid miért van két táblában is? Elég lenne a csoportadatok-ba.

select 
 t.azonosito, 
 t.nev, 
 tv.azonosito vez_azonosito, 
 tv.nev vez_nev, 
 cs.csoportnev
from tagok t
 inner join csoportok j on t.azonosito=j.tagid
 inner join csoportadatok cs on cs.azonosito=j.azonosito
 inner join tagok tv on tv.azonosito=cs.vezetoid