列' user_id'在字段列表中是不明确的

时间:2013-09-28 16:15:56

标签: mysql sql

我正在尝试获取离开此评论的用户的用户信息。

使用以下代码:

SELECT username, image, user_id FROM table_users AS us
JOIN table_reviews AS re
ON re.user_id = us.user_id
WHERE us.user_id = 1 AND
re.review_id= 1

我收到错误:

  

字段列表中的列'user_id'不明确

这是什么意思?

5 个答案:

答案 0 :(得分:28)

这意味着查询中的两个表都有user_id列。

您需要在SELECT语句中指定要获取的内容,例如 SELECT username, image, re.user_id

答案 1 :(得分:5)

列user_id位于table_reviewstable_users个表格中。

您还需要指定具有表别名的列。

SELECT username, image, us.user_id FROM table_users AS us
JOIN table_reviews AS re
ON re.user_id = us.user_id
WHERE us.user_id = 1 AND
re.review_id= 1

答案 2 :(得分:3)

这意味着列user_id位于两个表中,即table_reviews, table_users

试试这样:

SELECT username, image, us.user_id    //or re.user_id
FROM table_users AS us
JOIN table_reviews AS re
ON re.user_id = us.user_id
WHERE us.user_id = 1 AND
re.review_id= 1

答案 3 :(得分:0)

不仅在where子句(WHERE us.user_id = 1)中检查选定值(SELECT用户名,图像,user_id),在where子句中检查所有连接列,因此在您的示例中,在两个连接表中都有user_id列。如果您有这样的查询:

SELECT table_reviews.id FROM table_users AS us
JOIN table_reviews AS re
ON re.user_id = us.user_id
WHERE id

id将是不明确的,因为table_reviews和table_reviews中的id-s将在where子句中检查,尽管只选择了table_reviews中的id。

答案 4 :(得分:0)

这是因为两个表中都存在user_id字段。您需要指定所需的表user_id

SELECT username, image, re.user_id