简体   繁体   中英

MySQL Error 1052 or 1054

I am facing a problem for the MySQL statement.

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;

The Error now is Error Code: 1054. Unknown column 'vet_apparatus.apparatus_identifier' in 'order clause' 0.000 sec

If I remove the vet_apparatus, I will get Error 1052, too ambiguous.

I am new to MySQL, if there are any rookie problem, please let me know.

EDIT:

apparatus_identifier contains in different tables. vet_apparatus.apparatus_identifier has no typo

Table Structure:

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 

the first error is because apparatus_identifier isn't a column in your vet_apparatus table.

the second error is when MYSQL has two columns from two tables with the same name eg

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

here mysql gets confused because telephone could be table1 or table2. To fix, add the table to the where:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM