[英]MySQL Error 1052 or 1054
我面对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
第一个错误是因为apparatus_identifier
不是vet_apparatus
表中的列。
第二个错误是当MYSQL来自两个表的两个列具有相同名称时,例如
SELECT `table1`.`telephone`, `table2`.`telephone`
FROM `table1`
INNER JOIN `table2` using (`some_id`)
WHERE `telephone` = "0123456789"
由于电话可能是table1或table2,因此mysql感到困惑。 要解决此问题,请将表添加到以下位置:
SELECT `table1`.`telephone`, `table2`.`telephone`
FROM `table1`
INNER JOIN `table2` using (`some_id`)
WHERE `table1`.`telephone` = "0123456789"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.