JOIN 从错误的表中获取 id 值


JOIN getting id value from wrong table

我有一个类似于以下内容的连接:

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

但是,当我循环访问结果集时,我发现当我回显$row['id'];时,引用了错误表中的id字段。它echocolumns表中取出 id,而不是从users表中取出 id。

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

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

我感谢任何建议,

提前非常感谢!

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

例如:

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

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

echo $row['users-id'];