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

Hallo,

ich habe eine MySQL DB angelegt für ein Fotoalbum.

2 Tabellen:
"fotoalbum" welche die bilder und alles wissenswerte dazu enthält.
"ordner" welche nur die Namen aller "Bilderordner" enthält.

In der Spalte "Ordner" aus "fotoalbum" speichere ich, um den Eintrag einem Bilderordner zuzuweisen, also nur eine zahl, die ich durch durch einen left join mit der id aus "ordner" vergleichen und durch den richtigen Ordnernamen ersetzen will.

Mein SQL-Befehl dazu sieht so aus:
SELECT * FROM fotoalbum LEFT JOIN ordner ON fotoalbum.ordner = ordner.id

Wenn ich jetzt die Ergebnisse des Befehls abrufen will, kann ich jedoch nicht mehr auf die id aus "fotoalbum" zugreifen:
Nach dem PHP-Befehl $row = @mysql_fetch_assoc(MEIN_SQL_BEFEHL)
beinhaltet $row[id] die id aus "ordner" statt aus "fotoalben".

Das verwundert mich eigentlich, da mit dem LEFT JOIN ja eigentlich nur die Ordnernamen, aber nicht die id aus "ordner" übernommen sein sollten!!?

gibt es einen Trick, wie ich auf die id aus "fotoalben" zugreifen kann?

Viele Grüße
Jens

  1. 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"
    1. Perfekt, danke, es hat geklappt!