JOIN从错误的表中获取id值

时间:2013-10-26 21:32:20

标签: php mysql

我有类似以下的联接:

SELECT * FROM `users` u LEFT JOIN `columns` c ON u.id = c.user_id WHERE ....

然而,当我遍历结果集时,我发现当我回显id时,错误表中的$row['id'];字段被引用。它是echo来自columns表的id而不是users表中的id。

我尝试过这样的事情:echo $row['u.id'];但是我得到了一个未定义的索引错误。

我想知道为什么会这样,以及如何解决它?

我感谢任何建议,

非常感谢提前!

1 个答案:

答案 0 :(得分:2)

您遇到此问题是因为MySQL返回了两个不同的id列,每个表一个。要解决这种歧义,您可以为您可以保证唯一的名称所需的列添加别名。

例如:

SELECT u.id AS `users-id`, u.next_column
FROM users u
LEFT JOIN columns c...

所以在你的php中,你可以:

echo $row['users-id'];