Lido: MySQL5 Join und mehrfache gleiche Datensätze

Beitrag lesen

Hallo an alle MySQL-Freaks,

ich stehe vor einer kleinen :eek: Herausforderung mit einer SQL-Abfrage über mehrere Tabellen. Ich denke ein Join wäre das richtige....

Meine DB-Struktur sieht so aus:

  
+---------------------+  +---------------------+  +---------------------+  
| tabelle invoice     |  | tabelle creditor    |  | tabelle debitor     |  
+---------------------+  +---------------------+  +---------------------+  
| invoice_id          |  | creditor_id         |  | debitor_id          |  
| invoice_creditor_id |  | creditor_longname   |  | debitor_firstname   |  
| invoice_debitor_id  |  | creditor_shortname  |  | debitor_lastname    |  
| usw...              |  | usw...              |  | usw...              |  
+---------------------+  + --------------------+  + --------------------+  

Meine Query sieht so aus:

  
$sql="SELECT DISTINCT invoice.invoice_id,  
                      invoice.invoice_creditor_id,  
                      invoice.invoice_debitor_id,  
                      creditor.creditor_longname,  
                      creditor.creditor_shortname,  
                      debitor.debitor_firstname,  
                      debitor.debitor_lastname  
        FROM invoice, creditor, debitor  
    ORDER BY invoice.invoice_id ASC;";  

Das Resultat sieht so aus:

  
+------------+---------------------+--------------------+--------  
| invoice_id | invoice_creditor_id | invoice_debitor_id | usw...  
+------------+---------------------+--------------------+--------  
| 2          | 2                   | 1                  | usw...  
+------------+---------------------+--------------------+--------  
| 2          | 2                   | 1                  | usw...  
+------------+---------------------+--------------------+--------  
| usw...     |                     |                    |  
+------------+---------------------+--------------------+--------  

Das Problem: Die obige Query liefert mir alle Werte mehrfach (kartesiches Produkt). Ich möchte eine Abfrage erstellen die mir obiges Resultat OHNE doppelte bzw. mehrfache einträge liefert.

Frage: Wie muss dann meine Query lauten, damit jeder Datensatz nur EINMAL auftaucht?

Auf eure Antworten freue ich mich jetzt schon!