Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlender Feldinhalt nach LEFT JOIN Abfrage.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehlender Feldinhalt nach LEFT JOIN Abfrage.

    Hallo zusammen,

    ich habe ein kleines Problem mit einer SQL-Abfrage aus PHP.

    In der Datenbank sind 2 Tabellen.
    In Tabelle1 gibt es 2 Datensätze:
    tab_id | name
    1 | name1
    2 | name2

    In Tabelle2 ist 1 Datensatz:
    tab2_id | tab_id | daten
    1 | 2 | testdat

    Hier mal mein code:

    PHP-Code:
    $link=mysql_connect("host""user""pw");
    mysql_select_db("db_datenbank");

    $query "SELECT tabelle1.tab_id, tabelle1.name, tabelle2.*\n".
        
    "FROM tabelle1\n".
        
    "LEFT JOIN tabelle2\n".
        
    "ON tabelle2.tab_id = tabelle1.tab_id;";

    $ergebnis mysql_query($query);

    while(
    $zeile=mysql_fetch_object($ergebnis)){
        echo 
    "UserID: ".$zeile->tab_id." Name: ".$zeile->name;

    Das Problem ist nun.
    Mit meinem code bekomme ich zwar beide Zeilen der Datenbank, aber in Zeile 1 also die Zeile, die keinen eintrag in Tabelle2 hat, bekomme ich nur "name1", die tab_id fehlt.
    Schicke ich die selbe Abfrage von phpmyadmin ab, dann bekomme ich die id.
    Ich rätzel schon 2 Tag rum und finde keine Lösung.

    Tabellen und Feldernamen sind nur Beispielhaft.

    Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt und Ihr könnt mit helfen.

    Vielen Dank schonmal


  • #2
    Was passiert, wenn Du in dem Query die "\n" einfach weg lässt und anstatt des tabelle2.* die Spalten der Tabell2 explizit auflistest?

    z.B. so.

    Code:
    $query = "SELECT tabelle1.tab_id, tabelle1.name, tabelle2.tab2_id, tabelle2.tab_id AS t2_tab_id, tabelle2.daten ".
        "FROM tabelle1 ".
        "LEFT JOIN tabelle2 ".
        "ON tabelle2.tab_id = tabelle1.tab_id ";
    Wie Du siehst, gibt es eine doppelte Spalte "tab_id", die habe ich mal in "t2_tab_id" umbenannt.

    Ausserdem war da ein ";" am Ende des Query, der gehört da nicht hin.

    Grüße
    Thomas

    Kommentar


    • #3
      Suuuuuper

      1000 Dank für die schnelle Antwort.
      Der doppelte Feldname war das Problem.

      Danke nochmal ich bin echt fast verzweifelt.

      viele Grüße
      Enrico

      Kommentar

      Lädt...
      X