left join extrem

melmager

Erfahrenes Mitglied
mal wieder ne schwere frage :)

select * from tabl left join tabr on tabl.xx=tabr.yy

soweit so gut ich habe bei
den xx zu den yy feldern eine N zu N realation
mehrere gleichartige xx feldern stehen mehrer gleiche yy felder gegenüber

wie mache ich mit where oder so
vor dem leftjoin eine auswahl der yy felder so das ein left join
tabl.xx N felder join tabr.yy 1 feld entsteht?

select * from tabl left join tabr where tabr.sel=bla on ....
geht nicht auch nicht mit klammern ...

oder hilft alles nix und es muss ein cross join sein ??
 
wenn ich dich richtig verstanden habe,
ist das was zu als ergebnis haben willst keine tabelle mehr ...
also nix mit einer anfrage ;)
 
Versuch es doch mal mit einem GROUP BY, oder SELECT DISTINCT.
ich habe bei
den xx zu den yy feldern eine N zu N realation
mehrere gleichartige xx feldern stehen mehrer gleiche yy felder gegenüber
Das ist auserdem nicht sehr gut und entpricht auch nicht den Regeln der relationalen Datenbanken. Du solltest die m:n-Beziehung (ja so heißst das) zu einer 1:n-Beziehung auflößen, in dem du eine Zuordnungstabelle anlegst.
Dann tust du dir auch bei den Abfragen leichter.

Gruss Homer
 
jo ich habe es über eine zwischentabelle
gelöst

die temp tabelle wollte ich zwar vermeiden aber was solls

eigendlich schade das in mysql keine subselect abfragen möglich sind, dann ginge ohne die temp tabelle :)

(ich habe eh den eindruck das mysql gegenüber normalen sql datenbanken sehr abgespeckt ist)
 

Neue Beiträge

Zurück