mysql - 左连接 - 未知列?

标签 mysql

您能帮我解答疑问吗?我不断收到一条错误,指出“错误代码:1054。‘on 子句’中存在未知列‘cdata.customerid’”

如果我想附加客户数据表和订单表中客户 ID 匹配的左连接数据,我该如何实现?我一定不明白 SQL 在什么时候允许查询的不同部分访问数据。

select 

cdata.customerid, 
cdata.affiliate, 
cdata.firstname,
cdata.address1,
cdata.address2,
cdata.city,
cdata.state,
cdata.postalcode,
cdata.emailaddress,
cdata.active


from customerdata cdata, order a

left join
(select 
a.transactiondate, 
sum(a.TransactionAmount), 
a.id 
from order a
group by a.id) 

txns on a.id = cdata.customerid

where cdata.active = "A";

最佳答案

on子句中,您必须指定属于参与join子句的表的字段。因此,如果您要将 cdatatxns 子查询连接,则可能必须连接 txns.idcdata.customerid。您可能还想从子查询中获取总和,因此您必须在主 SELECT 子句中包含此字段。而且您可能必须在 group by 子句中指定 transactiondate 字段,至少这对于 ORACLE DB 是必需的,我不确定 MySQL 是否是这样:

select 

cdata.customerid, 
cdata.affiliate, 
cdata.firstname,
cdata.address1,
cdata.address2,
cdata.city,
cdata.state,
cdata.postalcode,
cdata.emailaddress,
cdata.active,
txns.tsum,
txns.transactiondate 

from customerdata cdata

left join
(select 
 a.transactiondate, 
 sum(a.TransactionAmount) tsum, 
 a.id 
 from order a
 group by a.id, a.transactiondate) txns 
on txns.id = cdata.customerid

where cdata.active = "A";

关于mysql - 左连接 - 未知列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39922727/

相关文章:

php - 将 CSV 文件加载到 MySQL 中返回错误

mysql - 配置 Orbeon 表单和 MySQL

php - 将表添加到数据库现在我需要将该数据拉出以显示

php - PHP 和 MySQL 的 MCQ 考试系统

mysql - 如何计算同一查询中的所有结果和特定计数 - MySql

c# - 使用 WCF 数据服务将一个数据库表复制到另一个数据库表

PHP 获取年龄函数在 Codeigniter 上不起作用

c# - 如何在 WPF 应用程序中集成和使用远程 MySQL 数据库

mysql - 将mysql命令行查询的结果放入bash脚本变量中

python - SQL查询错误字符串