Rouven: Left Join - Wie greif ich auf die id der richtigen Tabelle zu?

Beitrag lesen

Hello,

SELECT * FROM fotoalbum LEFT JOIN ordner ON fotoalbum.ordner = ordner.id
Das verwundert mich eigentlich, da mit dem LEFT JOIN ja eigentlich nur die Ordnernamen, aber nicht die id aus "ordner" übernommen sein sollten!!?

wer sagt das? Du hast gesagt SELECT * -> "gib mir alles". Wenn da zwei ID-Spalten drin sind wird sich das DBMS für eine entscheiden, wie auch immer es das tut. Es empfiehlt sich, SELECT * nur zu Testzwecken einzusetzen. Dein Problem löst sich nämlich automatisch, wenn du dem DBMS sagst, welche Spalten du gerne hättest.
SELECT ordnername, fotoalbum.id FROM ...

Wenn du beide ID-Spalten benötigst, kannst du noch mit Alias arbeiten:
SELECT ordnername, fotoalbum.id AS id_album, order.id AS id_ordner FROM ...

Der LEFT JOIN dient nicht dem Zweck, nur die linken Spalten zu übernehmen. Er sagt etwas darüber aus, welche Datensätze übernommen werden, nicht welche Spalten.

MfG
Rouven

--
-------------------
"I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."  --  J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"