Ankündigung

Einklappen
Keine Ankündigung bisher.

Verknüpfung mit LEFT JOIN

Einklappen

Neue Werbung 2019

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

  • Verknüpfung mit LEFT JOIN

    Hallo Zusammen,

    ich habe 2 MYSQL-Tabellen die über eine Spalte "TeilSN" u. "SN" einen Bezug zu einander haben.

    Code:
    Spalten Tabelle 1 (Auto): "Hersteller | TeilSN | Datum"
    Spalten Tabelle 2 (Teil): "Name       | SN     | Datum"
    Ich nutze eine "LEFT JOIN" SQL-Abfrage um die letzten 5 Autos u. Teil in einem Rutsch ab zu fragen:

    Code:
    SELECT 
    `Hersteller`, a.`TeilSN`, a.`Datum`, `Name` FROM `table_auto` a 
    LEFT JOIN 
    `table_Teil` b ON  b.`SN`=a.`TeilSN`
    ORDER BY a.`Datum` DESC LIMIT 5"
    Da es aber alte Teile mit der gleichen SN in der Teile-Tabelle geben kann,
    gibt es dann einen SQL-Error.

    Ich möchte bei einem Auto aber immer nur 1 Teil mit dem höchsten Datum aus der Teile Tabelle auslesen.

    Oder ggf. alle Teile für das Auto. (Nicht Notwendig, aber nice to have)

    Jemand eine Idee wie ich das bewerkstelligen kann?

    Gruß
    HSFighter
    Wieso, weshalb, warum?
    Wer nicht fragt bleibt dumm!

  • #2
    Zitat von HSFighter Beitrag anzeigen
    Da es aber alte Teile mit der gleichen SN in der Teile-Tabelle geben kann,
    gibt es dann einen SQL-Error.
    Das hat nix miteinander zu tun.

    Kommentar


    • #3
      MySQL-Error war falsch ausgedrückt. Ich bitte um Entschuldigung.
      Evtl wird es klarer wenn ich den PHP-Code von der Schleifenabfrage mit poste:
      Code:
      SELECT 
      `Hersteller`, a.`TeilSN`, a.`Datum`, `Name` FROM `table_auto` a 
      LEFT JOIN 
      `table_Teil` b ON  b.`SN`=a.`TeilSN`
      ORDER BY a.`Datum` DESC LIMIT 5"
      PHP-Code:
      //...
      $query->execute();
      if (
      $query->rowCount() != '0')
      {
          foreach (
      $query->fetchAll(PDO::FETCH_ASSOC) as $row
          {        
              echo 
      'Hersteller: '.$row['Hersteller'].' mit Teil: '.$row['Name'];
              echo 
      '<br>';
          }

      Wenn ich 5 Hersteller anzeigen lassen möchte,
      und einer der Hersteller hat eine Teilenummer die 2x mal in der Teiletabelle vorhanden ist,
      dann müsste er 2-mal Name anzeigen was zu einem Fehler führt.
      Wieso, weshalb, warum?
      Wer nicht fragt bleibt dumm!

      Kommentar

      Lädt...
      X