Hallo!
http://www.munds.at/mysql_dump.txt
Bitte den darin enthaltenen Daten keine allzugrosse Beachtung schenken, ist noch in der Testphase :)
Mit so einem Dump kann man sich einen besseren Überblick verschaffen.
Wieso funktioniert Deine SQL-Abfrage nicht? In den Tabellen "best_offen" und "best_ausgeliefert" steht in den Spalten referenz_nr keine Werte. In der Spalte "referenz_nr" der Tabelle "best_beantragt" gibt es ein paar Datenwerte. Was soll Dir MySQL nun anzeigen? MySQL kann halt Datenwerte mit NICHTS nicht verbinden. Den JOIN den Du angewendet hast, nennt man EQUI JOIN.
Für so etwas gibt es den LEFT JOIN oder RIGHT JOIN. MySQL zeigt hier auch Zeilen aus der linken Tabelle an, für die es in der rechten Tabelle keine Übereinstimmung gibt. Für Datenwerte, für die es in der rechten Tabelle keine Übereinstimmung gibt, wird NULL angezeigt. Bei einem RIGHT JOIN ist das genau umgekehrt. In einem MySQL-Buch wird Dir das sicherlich mit Beispielen besser erklärt, als ich das hier kann.
// LEFT JOIN
Links --> Rechts
best_beantragt --> best_offen --> best_ausgeliefert
FROM best_beantragt AS a LEFT JOIN best_offen AS b ON (a.interne_id>0 OR b.interne_id>0) LEFT JOIN best_ausgeliefert AS c ON (c.interne_id>0)
Man schaut auf die Tabellen dem SQL-Statment nach entlang von links nach rechts.
SELECT
a.referenz_nr AS ref_nr_1,
b.referenz_nr As ref_nr_2,
c.referenz_nr As ref_nr_3
FROM
best_beantragt AS a LEFT JOIN best_offen AS b ON (a.interne_id>0 OR b.interne_id>0)
LEFT JOIN best_ausgeliefert AS c ON (c.interne_id>0)
WHERE
a.referenz_nr = "abcdef
OR
b.referenz_nr = "abcdef"
OR
c.referenz_nr = "abcdef";
In den Klammern "(a.interne_id>0 OR b.interne_id>0)" werden sonst Beziehungen zwischen den Tabellen definiert. Da ich keine gesehen habe, habe ich es mal mit "interne_id>0" gemacht.
Wenn Du als OS Windows einsetzt, kann ich Dir MySQL-Front an Dein Herz legen. Für den lokalen Gebauch weit aus mehr geeignet als phpMyAdmin.
http://mysqlfront.venturemedia.de/index.php?act=ST&f=2&t=328
MfG, André Laugks
L-Andre @ gmx.de