[SQL allgemein] Abfrage über mehrer Tables

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

  • [SQL allgemein] Abfrage über mehrer Tables

    Erstmal einen schönen Sonntag allen zusammen !

    Ich hätte da mal wieder ein Problemchen, bei dem ich eure Hilfe bräuchte :

    Folgende Abfrage funzt schonmal

    PHP-Code:
    $query_1 "SELECT table1.feld1, table1.feld2, table2.feld1, table2.feld2 FROM table1, table2 WHERE (table1.feld = table2.feld) ORDER by table1.feld ASC" 
    Hier wird also immer ein Datensatz in table1 mit dem dazugehörigen Datensatz in table2 ausgegeben. In table2 ist immer nur ein zu table1 zugehöriger Datensatz vorhanden. Soweit so gut

    Nun habe ich noch ne table3 . In dieser können x-beliebig viele Datensätze zu einem datensatz aus table 1 zugehörig sein. Hier möchte ich jeweils nur den ersten datensatz aus table3 ausgeben der einen bestimmten wert enthält.

    Ist das nachvollziehbar ????

    Wenn ja, dann bedanke ich mich schonmal für eure Hilfe

    Gruß
    Holger

  • #2
    geht afaik nicht ohne zusätzliche Query in der Schleife
    PHP-Code:
    $res_1 mysql_query($query_1) or die(mysql_error());
    while 
    $row mysql_fetch_row($res_1)
    {
      
    $res_2 mysql_query(
        
    "select feld3 from table3
          where feld1='
    $row[0]' and feld2='wert'
          order by sortierfeld limit 0,1"
      
    );
      
    $row array_merge($rowmysql_fetch_row($res_2));
      ...

    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Moin Titus,

      danke erst mal für den Tip. Die Abfrage funktioniert auch soweit ( Bekomme zumindest keine Fehlermeldung )

      Das ganze sieht nun etwa so aus:

      PHP-Code:
      $result_1 mysql_query($query_1);
      while (
      $row=mysql_fetch_array($result_1))
      {
      // Zweites Query
      $res_2 mysql_query("select history_id, history_status from oxm_kundenhistory where history_history_id='$row[0]' and history_status='Eröffnet' order by history_id limit 0,1");
      $row array_merge($rowmysql_fetch_row($res_2));

      $kunde_history_status=$row['history_status'];
      ... 
      Was noch nicht klappt ist das auslesen der Werte aus dem zweiten Query. Das müßte doch normalerweis mit der Zeile $kunde_history_status=$row['history_status']; machbar sein , oder ????

      Kommentar

      Lädt...
      X