我有这个问题:
$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
我的问题是什么?
最佳答案
您需要从选择中指定您想要的列,并在它们前面加上表名。例如:
$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']
的内容来引用正确的列。
关于mysql - 如何从 LEFT JOIN mysql 表调用结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871566/