Unknown column 'a.org_code' in 'on clause'
时间: 2023-09-24 11:04:12 浏览: 107
这个错误通常发生在 SQL 查询中,表示在 ON 子句中引用的列名 `a.org_code` 在查询的表中不存在或拼写错误。
请确保在查询的表中存在名为 `org_code` 的列,并且使用正确的表别名或前缀来引用该列。你可以检查表的结构或使用 `DESC table_name` 命令来查看列的详细信息。
另外,还要确认在 ON 子句中使用的表别名 `a` 是否正确声明和定义。如果表别名未声明或定义,也会导致类似的错误。
最后,还需要确保查询语句中没有语法错误或其他拼写错误。仔细检查整个查询语句,特别是 ON 子句部分,以确保所有的表和列名都正确无误。
如果问题仍然存在,请提供更多的查询语句和相关信息,以便更准确地定位问题所在。
相关问题
p2.connector_brand_name, p2.element_brand_name, p4.item_code, p4.k1_e_status from pz_k1_e12_item p1 left join pz_k1_e07_item p2 on p1.e07_id = p2.id left join pz_k1_e07 p3 on p2.harness_id = p3.id left join pz_k1_e02 p4 on p4.id = p1.e02_id where p3.vehicle_code='SX11AD-2021' GROUP BY p2.element_brand_name,p2.connector_code > 1055 - Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'edds.p3.harness_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by > 时间: 0.005s
根据你提供的 SQL 语句,错误信息显示在第 1 行,在 SELECT 子句中查询了一个未加入 GROUP BY 子句的列 p3.harness_name,需要修改。此外,你的 MySQL 数据库设置了 sql_mode=only_full_group_by,表示只有在 SELECT 语句中的列名都出现在 GROUP BY 子句中时,才能执行查询,因此还需要修改查询语句。如果你想查询 p2.connector_brand_name、p2.element_brand_name、p4.item_code 和 p4.k1_e_status 列,可以将它们加入 SELECT 子句和 GROUP BY 子句中,如下所示:
```
SELECT p2.connector_brand_name, p2.element_brand_name, p4.item_code, p4.k1_e_status
FROM pz_k1_e12_item p1
LEFT JOIN pz_k1_e07_item p2 ON p1.e07_id = p2.id
LEFT JOIN pz_k1_e07 p3 ON p2.harness_id = p3.id
LEFT JOIN pz_k1_e02 p4 ON p4.id = p1.e02_id
WHERE p3.vehicle_code='SX11AD-2021'
GROUP BY p2.connector_brand_name, p2.element_brand_name, p4.item_code, p4.k1_e_status;
```
这样就可以查询到 p2.connector_brand_name、p2.element_brand_name、p4.item_code 和 p4.k1_e_status 列,并且不会有 GROUP BY 子句的错误了。
SELECT cbdl_code, CASE WHEN LENGTH(cbdl_code) = 1 THEN name WHEN LENGTH(cbdl_code) = 3 THEN CONCAT_WS('/', (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 1)), (SELECT name FROM pms_cbdl WHERE cbdl_code = t1.cbdl_code)) WHEN LENGTH(cbdl_code) = 4 THEN CONCAT_WS('/', (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 1)), (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 3)), (SELECT name FROM pms_cbdl WHERE cbdl_code = t1.cbdl_code)) WHEN LENGTH(cbdl_code) = 5 THEN CONCAT_WS('/', (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 1)), (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 3)), (SELECT name FROM pms_cbdl WHERE cbdl_code = SUBSTRING(t1.cbdl_code, 1, 4)), (SELECT name FROM pms_cbdl WHERE cbdl_code = t1.cbdl_code)) END AS new_name FROM pms_cbdl t1;以上语句执行报错Unknown column 't1.cbdl' in where clause
根据错误信息,报错的原因是在 WHERE 子句中找不到 't1.cbdl' 这个列。这可能是由于表 pms_cbdl 中没有名为 'cbdl' 的列造成的。请确保在 WHERE 子句中使用的列名与表 pms_cbdl 中的列名一致。
如果列名是正确的,还请检查表 pms_cbdl 是否存在,并且确保已正确连接到数据库。如果表名和列名都正确,并且仍然出现此错误,请提供完整的表结构和数据,以便我能够更好地帮助您解决问题。谢谢!
阅读全文