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

标签 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

我的问题是什么?

最佳答案

您需要从选择中指定您想要的列,并在它们前面加上表名。例如:

$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/

相关文章:

mysql | mysql |有条件左连接请求

mysql - 如何执行 MYSQL REPLACE 将多个或单个空格替换为 | (管道)

javascript - 基于用户输入的 MySQL 查询 - 多个下拉列表

mysql - 微调 MYSQL 以获得最佳性能

php - 如何更改mysql中的文本unicode

mysql - 简单求和与减法语法错误

sql - 在 Oracle 中描述查询结果的模式?

php - 我如何让 mysql 排名朝着正确的方向发展

mysql - 在MySQL中,如何对左连接语句使用子查询?

mysql - 使用子查询左连接三个表