如何从LEFT JOIN mysql表中调用结果

时间:2017-01-26 10:36:31

标签: mysql sql left-join

我有这个问题:

$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';

和表格:

rdm_item列:aff_id/aff_publish/...

rdm_tag列:aff_id/type_id/...

我可以得到结果。

但对于$result[0]['aff_id'],我希望rdm_item.aff_id,但它会返回rdm_tag.aff_id

我的问题是什么?

1 个答案:

答案 0 :(得分:2)

您需要从select中指定所需的列,并在其前面加上表名。例如:

$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';

如果两个表中有重复的列名(即aff_id),请使用标识符,例如

$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';

然后,您可以使用result[0]['rdm_item_aff_id']

之类的内容来引用正确的列