SQL JOIN无法使其正常工作

时间:2016-06-03 08:19:32

标签: mysql sql

我知道论坛里充满了这些问题,但我找不到解决方案。 我想从user_to_designment加入表用户,他们都有一个user_id列,我得到的错误是:

select user_id, designment_id FROM user_to_designment
FULL JOIN users
ON  user_to_designment.user_id = users.user_id


 LIMIT 0, 25 
MySQL meldt: Documentatie

#1052 - Column 'user_id' in field list is ambiguous 

我使用此查询:

select user_id, designment_id FROM user_to_designment
FULL JOIN users
ON  user_to_designment.user_id = users.user_id

请一些建议

5 个答案:

答案 0 :(得分:1)

在您的选择列表中,前缀为user_id,表名为:

select users.user_id, designment_id FROM user_to_designment
FULL JOIN users
ON  user_to_designment.user_id = users.user_id

两列都有user_id,SQL无法在它们之间进行选择,必须明确指定。

答案 1 :(得分:0)

您需要在select中指定要返回的user_id,例如select users.user_id或Select user_to_designment.user_id

答案 2 :(得分:0)

您必须明确要选择的user_id表列。

select a.user_id,b.designment_id from user_to_designment b
full join users a
on b.user_id=a.user_id

答案 3 :(得分:0)

这是因为" user_id"两个表都存在字段。 你必须把表名放在字段名之前。

    select user_to_designment.user_id, designment_id FROM user_to_designment
FULL JOIN users
ON  user_to_designment.user_id = users.user_id

答案 4 :(得分:0)

两个表中似乎都存在user_id。所以它给出了模棱两可的错误。我们应该说从哪个表中选择列。

SELECT users.user_id
    ,user_to_designment.designment_id
FROM user_to_designment
FULL JOIN users ON user_to_designment.user_id = users.user_id

您可以在select语句中使用users.user_id或user_to_designment.user_id。始终使用tablename.columnname格式。它避免了混淆。