【问题标题】:MySQL Error 1052 or 1054MySQL 错误 1052 或 1054
【发布时间】:2018-01-06 18:30:15
【问题描述】:

我遇到了 MySQL 语句的问题。

SELECT apparatus_lic.* ,'', licensee_lic.*, vet_apparatus.*
FROM apparatus_lic, licensee_lic, vet_apparatus 
WHERE licensee_lic.licensee_status = 'Y' 
AND vet_apparatus.licensee_id = apparatus_lic.licensee_id 
AND vet_apparatus.licensee_comm = apparatus_lic.licensee_comm 
AND vet_apparatus.apparatus_identifier = apparatus_lic.apparatus_identifier 
AND vet_apparatus.reference_no = apparatus_lic.reference_no 
AND licensee_lic.licensee_br = apparatus_lic.licensee_id 
AND licensee_lic.licensee_comm = apparatus_lic.licensee_comm 
AND vet_apparatus.apparatus_status <> 'D' 
Union SELECT apparatus_appro.*, licensee_lic.*, vet_apparatus.* 
FROM apparatus_appro, licensee_lic, vet_apparatus 
WHERE licensee_lic.licensee_status = 'Y' 
AND vet_apparatus.licensee_id = apparatus_appro.licensee_id 
AND vet_apparatus.licensee_comm = apparatus_appro.licensee_comm 
AND vet_apparatus.apparatus_identifier = apparatus_appro.apparatus_identifier 
AND vet_apparatus.reference_no = apparatus_appro.reference_no 
AND licensee_lic.licensee_br = apparatus_appro.licensee_id 
AND licensee_lic.licensee_comm = apparatus_appro.licensee_comm 
ORDER BY licensee_cn, licensee_ccn, vet_apparatus.apparatus_identifier;

现在的错误是错误代码:1054。“订单条款”中的未知列“vet_apparatus.apparatus_identifier”0.000 秒

如果我删除了 vet_apparatus,我会得到错误 1052,太模棱两可了。

我是 MySQL 新手,如果有任何菜鸟问题,请告诉我。

编辑:

apparatus_identifier 包含在不同的表中。 vet_apparatus.apparatus_identifier 没有错字

表结构:

vet_apparatus
reference_no            varchar(50) NO  PRI
apparatus_identifier    varchar(4)  NO  PRI
licensee_id             varchar(8)  NO  PRI
licensee_comm           varchar(3)  NO  PRI
apparatus_status        varchar(2)  YES 

apparatus_lic
reference_no            varchar(20) NO  PRI 
apparatus_identifier    varchar(4)  NO  PRI 
licensee_id             varchar(8)  NO  PRI 
licensee_comm           varchar(3)  NO  PRI 

apparatus_appro
reference_no            varchar(20) NO      
apparatus_identifier    varchar(4)  NO  PRI 
licensee_id             varchar(8)  NO  PRI 
licensee_comm           varchar(3)  NO  PRI 

【问题讨论】:

    标签: mysql


    【解决方案1】:

    第一个错误是因为apparatus_identifier 不是您的vet_apparatus 表中的列。

    第二个错误是当 MYSQL 有来自两个同名表的两个列时 例如

    SELECT     `table1`.`telephone`, `table2`.`telephone`
    FROM       `table1`
    INNER JOIN `table2` using (`some_id`)
    WHERE      `telephone` = "0123456789"
    

    这里 mysql 感到困惑,因为电话可能是 table1 或 table2。要修复,请将表添加到 where:

    SELECT     `table1`.`telephone`, `table2`.`telephone`
    FROM       `table1`
    INNER JOIN `table2` using (`some_id`)
    WHERE      `table1`.`telephone` = "0123456789"
    

    【讨论】:

    • apparatus_identifier 在 vet_apparatus & licensee_lic 中
    • @P.Tam 如果是这种情况,那么它不会返回该错误:) 它可能是列名中的拼写错误,或者您的查询中的拼写错误 - 但它不会错误:)
    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 2016-04-01
    • 2012-03-09
    • 1970-01-01
    • 2016-01-04
    • 2010-11-17
    相关资源
    最近更新 更多