gpt4 book ai didi

mysql - 左连接 - 未知列?

转载 作者:行者123 更新时间:2023-11-29 11:14:52 24 4
gpt4 key购买 nike

您能帮我解答疑问吗?我不断收到一条错误,指出“错误代码: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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com