Mysql '中的未知列;关于第'条;具有多个连接
我想知道是否有人能帮忙 我返回错误: 错误代码:1054。“on子句”中的未知列“sub_claims_volume.claims_volume” 当我尝试运行下面的查询时 我认为这与pi_loadings_claims_volume表的连接有关 我已经从子查询生成了一个表,在这种情况下进行连接没有问题,并且返回了正确的结果Mysql '中的未知列;关于第'条;具有多个连接,mysql,Mysql,我想知道是否有人能帮忙 我返回错误: 错误代码:1054。“on子句”中的未知列“sub_claims_volume.claims_volume” 当我尝试运行下面的查询时 我认为这与pi_loadings_claims_volume表的连接有关 我已经从子查询生成了一个表,在这种情况下进行连接没有问题,并且返回了正确的结果 SELECT bdx_pi_policy_accounts.policyid, bdx_pi_policy_accounts.renewal, sub_clai
SELECT bdx_pi_policy_accounts.policyid,
bdx_pi_policy_accounts.renewal,
sub_claims_volume.claims_volume,
pi_loadings_claims_volume.loading
FROM bdx_pi_policy_accounts
LEFT JOIN pi_loadings_claims_volume
ON sub_claims_volume.claims_volume =
pi_loadings_claims_volume.claims_per_year
LEFT JOIN (SELECT pi_claims.policyid,
RIGHT(pi_claims.policykey, 1) AS Renewal,
Count(pi_claims.claimid) AS Claims_Volume
FROM pi_claims
GROUP BY pi_claims.policyid,
pi_claims.policykey) AS sub_claims_volume
ON bdx_pi_policy_accounts.policyid = sub_claims_volume.policyid
AND bdx_pi_policy_accounts.renewal = sub_claims_volume.renewal
显示未知列错误的原因是,当使用
pi\u loadings\u claims\u volume
表执行join
时,sub\u claims\u volume
表别名未知(即i),因此,查询无法识别claims\u volume
列
重新定位join
中的表(即在join
条件之前放置sub\u索赔(卷
query))应该可以解决此问题,例如:
SELECT bdx_pi_policy_accounts.policyid,
bdx_pi_policy_accounts.renewal,
sub_claims_volume.claims_volume,
pi_loadings_claims_volume.loading
FROM bdx_pi_policy_accounts
LEFT JOIN (SELECT pi_claims.policyid,
RIGHT(pi_claims.policykey, 1) AS Renewal,
Count(pi_claims.claimid) AS claims_volume
FROM pi_claims
GROUP BY pi_claims.policyid,
pi_claims.policykey) sub_claims_volume
ON bdx_pi_policy_accounts.policyid = sub_claims_volume.policyid
AND bdx_pi_policy_accounts.renewal = sub_claims_volume.renewal
LEFT JOIN pi_loadings_claims_volume
ON sub_claims_volume.claims_volume =
pi_loadings_claims_volume.claims_per_year
显示未知列错误的原因是,当使用
pi\u loadings\u claims\u volume
表执行join
时,sub\u claims\u volume
表别名未知(即i),因此,查询无法识别claims\u volume
列
重新定位join
中的表(即在join
条件之前放置sub\u索赔(卷
query))应该可以解决此问题,例如:
SELECT bdx_pi_policy_accounts.policyid,
bdx_pi_policy_accounts.renewal,
sub_claims_volume.claims_volume,
pi_loadings_claims_volume.loading
FROM bdx_pi_policy_accounts
LEFT JOIN (SELECT pi_claims.policyid,
RIGHT(pi_claims.policykey, 1) AS Renewal,
Count(pi_claims.claimid) AS claims_volume
FROM pi_claims
GROUP BY pi_claims.policyid,
pi_claims.policykey) sub_claims_volume
ON bdx_pi_policy_accounts.policyid = sub_claims_volume.policyid
AND bdx_pi_policy_accounts.renewal = sub_claims_volume.renewal
LEFT JOIN pi_loadings_claims_volume
ON sub_claims_volume.claims_volume =
pi_loadings_claims_volume.claims_per_year
达珊,非常感谢你。我没有考虑重新定位连接。这很好用。顺致敬意,请在你的答案中添加一些上下文,解释你改变了什么以及为什么。“这将使你的回答对未来的游客更有帮助。”米肯32补充道,“达珊,非常感谢你。”。我没有考虑重新定位连接。这很好用。顺致敬意,请在你的答案中添加一些上下文,解释你改变了什么以及为什么。这将使您的答案对未来的访问者更有帮助。@miken32添加了上下文