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!