我有类似以下的联接:
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'];
但是我得到了一个未定义的索引错误。
我想知道为什么会这样,以及如何解决它?
我感谢任何建议,
非常感谢提前!
答案 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'];