Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql '中的未知列;关于第'条;具有多个连接_Mysql - Fatal编程技术网

Mysql '中的未知列;关于第'条;具有多个连接

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

我想知道是否有人能帮忙

我返回错误:

错误代码:1054。“on子句”中的未知列“sub_claims_volume.claims_volume”

当我尝试运行下面的查询时

我认为这与pi_loadings_claims_volume表的连接有关

我已经从子查询生成了一个表,在这种情况下进行连接没有问题,并且返回了正确的结果

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添加了上下文