Mit Wert bestimmte Spalten auslesen

TheTrashinger

Neuer Benutzer
Beiträge
2
HeyHo,
Ich habe 3 Tabellen (Kunden, Fahrzeuge, Aufträge)

In Aufträge: [id, auftragsnr, fahrzeugnr, kundennr, datum]
In Kunden: [id, kundennr, vorname, nachname, usw...]
In Fahrzeuge: [id, fahrzeugnr, kundennr, marke, modell, usw...]

Nun habe ich eine Seite die mir per SELECT die Werte von der "Aufträge"-Tabelle ausließt.
Was auch wunderbar funktioniert.
PHP:
$sql_ergebniss = "SELECT * FROM auftrag ORDER BY datum";
          $ergebniss = $conn->query($sql_ergebniss);
         
          if ($ergebniss->num_rows > 0){
              while($row = $ergebniss->fetch_assoc()){
                  echo $row["auftragsnr"];
                  echo $row["kundennr"] ;
                  echo $row["fahrzeugnr"];
                  echo $row["datum"];
              }
             
          } else {
              echo "<h2>Keine Aufträge vorhanden!</h2>";
          }
Nun möchte ich aber in einer Tabelle nicht einfach die "kundennr" angezeigt bekommen, sondern Vornamen, Nachnamen usw, von der "Kunden"-Tabelle anzeigen lassen und die "Marke, Modell usw." von der "Fahrzeug"-Tabelle.

Ich habe einen Versuch gestartet, aber das ergibt keinen Sinn :D.
PHP:
$sql_kundennr = "SELECT kundennr FROM auftrag";
          $ergebniss = $conn->query($sql_ergebniss);
         
          if ($ergebniss->num_rows > 0){
              while($row = $ergebniss->fetch_assoc()){
                  $z_kundennr = $row["kundennr"];
              }
             
          }
    $o_kundennr = "SELECT * FROM kunden WHERE kundennr IN ('" . $z_kundennr ."')";
        $o_kundener = $conn->quer<($o_kundennr);
       
        if ($o_kundener->num_rows > 0){
            $z_vorname = $row["vorname"];
            $z_nachname = $row["nachname"];
        }

   
    $a_vorname = $z_vorname;
    $a_nachname = $z_nachname;

Ich komm einfach nicht auf die Lösung für mein Problem. Eventuell könnte "JOIN" helfen, aber bei der Funktion blick ich nicht durch.:oops:

Danke schon mal fürs Durchlesen :cool:
 
Werbung:
Ja, genau. Du suchst einen JOIN.

Code:
select a.datum, a.auftragsnr, k.name from auftraege a left join kunden k on a.kundennummer=k.id

So in der Art. Joins sind MASSIG beschrieben, einfach mal Google bemühen. Keine Abfragen in Schleifen, keine Verwendung von * im Select-Teil.
 
Hat mit einen "LEFT JOIN" funktioniert.:D

Code:
SELECT auftrag.auftragsnr, kunden.Vorname, kunden.Nachname, auftrag.datum FROM auftrag LEFT JOIN kunden ON auftrag.kundennr=kunden.kundennr ORDER BY auftrag.datum

Kann man bei einem JOIN auch 3 Tabellen "auslesen" mit AND oder OR?
 
Werbung:
Du kannst nahezu beliebig viele Tabellen via JOIN verbinden. Ein Freund hat es mal mit einer Million gemacht. Das aber mit einer richtigen Datenbank, also nicht MySQL.
 
Zurück
Oben