4 Join Verknüpfungen in einer Abfrage

latina1984

Mitglied
Hi Leute, brauch mal wieder eure Hilfe....

ich versuche 3(broker_list,p_company,d_company) Tabellen über eine Haupttabelle(loads) zu verknüpfen. Mein Quelltext sieht so aus:

$result = mysql_query
("select * from loads

left join broker_list on
loads.broker_id = broker_list.broker_id

left join p_company on
loads.from_id = p_company.id

left join d_company on
loads.to_id = d_company.id

order by datum " ,$db_link);

Aber irgendwie zeigt er mir meine Datensätze für d_company nicht an. Die anderen jedoch schon. WIESO?:mad:
 
Hallo,

das Statement selbst sieht soweit gut aus und sollte funktionieren.
Hast du es mal direkt im MySQL ausprobiert? Oder ist es eher ein PHP-Problem? Das könnte nämlich sein, je nachdem wie du auf das Resultset zugreifst!

So wie es aussieht, hast du sowohl in deiner Tabelle P_COMPANY als auch D_COMPANY eine Spalte ID und wahrscheinlich noch eine andere gleichlautende Spalte.

Wenn du die Abfrage mit "SELECT *" laufen lässt, bekommst du für alle Spalten deren Namen zurück.
Da ich tippe, dass die beiden COMPANY-Spaltennamen kollidieren, schreib dein Statement mal um, so dass es Spalten-Aliase benutzt,z.B.so:

SQL:
select loads.id        AS load_id,
       loads.broker_id AS broker_id,
       p_company.id    AS pcompany_id, 
       d_company.id    AS dcompany_id 
  from loads
  left join broker_list on
  loads.broker_id = broker_list.broker_id
  left join p_company on
  loads.from_id   = p_company.id
  left join d_company on
  loads.to_id     = d_company.id

Dann hast du im Resultset eindeutige Spaltennamen, sofern das der "Fehler" war.

Hoffe es hilft,
Markus
 
Zurück