2017-01-26 1 views
1

Ich habe diese Anfrage:Wie Aufruf Ergebnisse von LEFT JOIN MySQL-Tabelle

$query = ' 
SELECT * FROM "rdm_item" 
    LEFT JOIN "rdm_tag" ON "rdm_item"."aff_id" = "rdm_tag"."aff_type_id"  
    WHERE "rdm_item"."aff_publish" = 4 
    ORDER BY "rdm_item"."aff_id" 
    DESC LIMIT 0,12'; 

und Tabellen:

rdm_item Spalten: aff_id/aff_publish/...

rdm_tag Spalten: aff_id/type_id/...

I könnte Ergebnisse erzielen.

Aber für $result[0]['aff_id'] erwarte ich rdm_item.aff_id aber es rdm_tag.aff_id

zurückgeben, was ist mein Problem?

+1

Steve hat Recht. Versuch es. –

Antwort

2

Sie müssen die gewünschten Spalten in der Auswahl angeben und ihnen den Tabellennamen voranstellen. Zum Beispiel:

$query = ' 
SELECT rdm_item.aff_id FROM "rdm_item" 
    LEFT JOIN "rdm_tag" ON "rdm_item"."aff_id" = "rdm_tag"."aff_type_id"  
    WHERE "rdm_item"."aff_publish" = 4 
    ORDER BY "rdm_item"."aff_id" 
    DESC LIMIT 0,12'; 

Wenn Sie doppelte Spaltennamen in zwei Tabellen haben (d. H. Aff_id) verwenden Sie eine Kennung, z.

$query = ' 
SELECT rdm_item.aff_id as rdm_item_aff_id, rdm_tag.aff_id as rdm_tag_aff_id FROM "rdm_item" 
    LEFT JOIN "rdm_tag" ON "rdm_item"."aff_id" = "rdm_tag"."aff_type_id"  
    WHERE "rdm_item"."aff_publish" = 4 
    ORDER BY "rdm_item"."aff_id" 
    DESC LIMIT 0,12'; 

Sie können dann wie result[0]['rdm_item_aff_id'] auf die richtige Spalte mit etwas verweisen.