Ilja: Join im php-script

Beitrag lesen

moin,

Wähle all die Datensätze aus "alle1" aus, bei denen der Inhalt der Spalte "idnummer" mit dem Inhalt der spalte "idnummer" aus alle2 übereinstimmt.

Vinzenz hat dich ja schon auf den fehlenden tabellen-namen beim JOIN hingewiesen. ich will dir noch einen weiteren hinweis mit auf den weg geben, obwohl latent die gefahr besteht, dass du ihn gar nicht mehr ließt. den tipp, den ich dir geben will, wird vielen hier schon aus den ohren kommen. trotzdem ist er wichtig, nämlich JOINS sind böse.

die aussage klingt auf der ersten blick ein wenig "aggresiv", stimmt aber im kern. JOINS sollte man immer mit bedacht einsetzen. und wenn ich mir anschaue, was du haben willst, nämlich eigentlich nur daten der tabelle alle1, dann machst du einen methodischen fehler diese tabelle mit alle2 (nicht gerade sinnvolle tabellen namen) zu JOINEN. auch wenn im ergebnis das gleiche rauskommst, so wäre es besser mit einer unterabfrage zu arbeiten.

SELECT alle1.Titel, alle1.idnummer
FROM alle1
WHERE EXISTS (SElECT NULL
              FROM alle2
              WHERE alle2.idnummer = alle1.idnummer
             )
;

das gibt deine frage besser wieder, weil unabhängig von der beziehung der beiden tabellen du immer nur die anzahl der datensätze aus tabelle alle1 bekommst, die du auch haben willst. bei einem JOIN besteht immer die latente gefahr, dass sich aufgrund der beziehung zwischen den tabellen die anzahl der datensätze in der ergebnismenge vervielfältigt. mit der unterabfrage kann dieses probleme -> NIE <- auftreten und ist deswegen der methodisch besser weg.

ich habe fertig.....

Ilja