【问题标题】:MySql Error: field is ambiguos (code 1052)MySql 错误:字段不明确(代码 1052)
【发布时间】:2015-05-16 17:35:29
【问题描述】:

我正在尝试创建一个 SELECT 语句,该语句将能够根据某些条件从各种表中提取数据,但我不断收到相同的错误“错误代码 1052:where 子句中的列用户名不明确”

这里是sql语句

SELECT * FROM engineer, users WHERE Username = "James" AND Password = "12345"

这是所涉及的表格的样子

工程师:user_id(pk)、用户名、密码、地址、Contact_No

用户:user_id(pk)、用户名、密码、地址、Contact_No

我认为错误可能在于两个表中有相同的用户名列,但我找不到合适的 sql 语句。

【问题讨论】:

  • 请使用示例数据和所需结果编辑您的问题。另外,为什么您有两个具有完全相同列的表?这通常表明数据模型存在问题。
  • 这意味着您的两个表都包含同名的列

标签: mysql sql


【解决方案1】:

您需要使用语法 table.column_name。所以你的查询可以是:

SELECT * FROM engineer, users WHERE engineer.Username = 'James' AND engineer.Password = '12345'

我选择工程师,但您可以对用户执行相同操作或将两者混合使用。还要注意值周围的单引号。

【讨论】:

  • 他还需要在用户表上应用条件(或使用ON子句),才能达到预期的效果。
  • 你是对的。我的回答只是集中在解释操作所面临的错误的原因。没有足够的信息来构建优化的查询恕我直言
【解决方案2】:
SELECT * FROM engineer WHERE Username = "James" AND Password = "12345"
UNION
SELECT * FROM users WHERE Username = "James" AND Password = "12345"
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    相关资源
    最近更新 更多