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:
  1. $MySQLparancs = "SELECT azonosito, nev, vezetoId, csoportNev FROM  
  2. tagok, csoportok WHERE ((" . /* ide vannak felsorolva az azonositok 
  3. pl így: */"tagok.azonosito = '2' OR tagok.azonosito = '3' ..." . ")  
  4. AND csoportok.tagId = tagok.azonosito AND csoportok.vezetoId =  
  5. 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.
  1. select   
  2.  t.azonosito,   
  3.  t.nev,   
  4.  tv.azonosito vez_azonosito,   
  5.  tv.nev vez_nev,   
  6.  cs.csoportnev  
  7. from tagok t  
  8.  inner join csoportok j on t.azonosito=j.tagid  
  9.  inner join csoportadatok cs on cs.azonosito=j.azonosito  
  10.  inner join tagok tv on tv.azonosito=cs.vezetoid