# Join mit drei Tabellen



## kippi01 (8. Dezember 2005)

Hallo,

ich möchte Daten aus drei Tabellen (kunden, berichtskopf, arbeitsbericht) ausgeben. In den Tabellen kunden und berichtskopf gibt es das gemeinsame Feld "kundennr" und in den tabellen berichtskopf und arbeitsbericht das gemeinsame Feld "auftragsnr". In einer Session wird mir der Wert "auftragsnr" zur Verfügung gestellt.

Es sollen in einer Übersicht alle Daten aus den drei Tabellen dargestellt werden. Kann ich das über einen Join machen? Wenn ja, wie?

Danke für Eure Antwort ....

André


----------



## mxp (8. Dezember 2005)

select [alle benötigten Feldnamen mit vorangestelltem zugehörigen Tabellennamen] from kunden
left join berichtskopf on berichtskopf.kundennr = kunden.kundennr
left join arbeitsgericht on arbeitsgericht.auftragsnr = berichtskopf.auftragsnr

<- so in etwa?


----------



## muhkuh (16. März 2006)

Joa, so würd ichs auch machen

```
$sql = mysql_query( "SELECT
                          k.kundennr,
                          k.kundenname,
                          k.kundenadresse,
                          b.berichtsnr,
                          b.berichtstext,
                          a.arbeitsberichttext
                      FROM
                          tbl_kunden k
                      LEFT JOIN
                          tbl_berichtskopf b
                      ON
                          b.kundennr = k.kundennr
                      LEFT JOIN
                          tbl_arbeitsbericht a
                      ON
                          a.auftragsnr = b.auftragsnr
                      WHERE
                          k.kundennr = '" . $_GET[ 'id' ] . "'
                  " , $db_connect );

    while( $kunde = mysql_fetch_assoc( $sql ) )
    {
        echo '<b>' . $kunde[ 'kundenname' ] . '</b><br />';
        echo $kunde[ 'berichtstext' ];
        echo 'etc.......';
    }
```


----------



## mxp (17. März 2006)

Du solltest darauf verzichten, Eingabewerte (aus $_GET, $_POST) ungeprüft zu verwenden. Grade in SQL-Kommandos ist das ganz böse.

An sonsten klar. Ich hatte die id noch vergessen.

Dass das jetzt noch einer liest.. ;-)


----------

