Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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_Sql - Fatal编程技术网

Mysql 重复的列名-内部联接

Mysql 重复的列名-内部联接,mysql,sql,Mysql,Sql,这是我的疑问: SELECT FinancialMoein.*, FinancialMoein.kol_code as kol_code , TBFC.kol_code as parent_code FROM ( SELECT TP.*, ifnull(TP.kol_code,TP.moein_code) as code, ifnull(TR.title, TP.title_en) AS titl

这是我的疑问:

SELECT FinancialMoein.*,
       FinancialMoein.kol_code as kol_code ,
       TBFC.kol_code as parent_code 
FROM (
       SELECT TP.*,
              ifnull(TP.kol_code,TP.moein_code) as code,
              ifnull(TR.title, TP.title_en) AS title,
              ifnull(TR.description, TP.description_en) AS description
       FROM Tb_Financial_Coddings TP LEFT JOIN 
             (
               SELECT title,
                      description,
                      financial_codding_id 
               FROM Tb_Financial_Coddings_Translations 
               WHERE locale = @Locale
             ) TR  
       ON TR.financial_codding_id = TP.id
       WHERE TP.type = 'kol' AND TP.deleted_at IS NULL
     ) as FinancialMoein INNER JOIN Tb_Financial_Coddings TBFC 
ON FinancialMoein.parent_id = TBFC.id;
但我得到了这个错误信息:

重复的列名“kol_代码”


select子句中的
FinancialMoein.
已包含列
kol\u code
,因为它是使用包含列
kol\u code
的表
Tb\u Financial\u codings
导出的。然后,您再次使用相同的名称选择它,因此存在问题。您必须为所有列保留不同的名称。您可以尝试在下面的查询中忽略此问题-

SELECT FinancialMoein.*,
       FinancialMoein.kol_code as kol_code_2,
       TBFC.kol_code as parent_code 
FROM (
       SELECT TP.*,
              ifnull(TP.kol_code,TP.moein_code) as code,
              ifnull(TR.title, TP.title_en) AS title,
              ifnull(TR.description, TP.description_en) AS description
       FROM Tb_Financial_Coddings TP LEFT JOIN 
             (
               SELECT title,
                      description,
                      financial_codding_id 
               FROM Tb_Financial_Coddings_Translations 
               WHERE locale = @Locale
             ) TR  
       ON TR.financial_codding_id = TP.id
       WHERE TP.type = 'kol' AND TP.deleted_at IS NULL
     ) as FinancialMoein INNER JOIN Tb_Financial_Coddings TBFC 
ON FinancialMoein.parent_id = TBFC.id;

相反,您可以将列
FinancialMoein.kol_code作为kol_code删除,
从外部选择忽略错误。

我想
FinancialMoein.
返回相同的列
FinancialMoein.
将选择所有列。然后,
FinancialMoein.kol_code
将专门选择该列。因此,实际上您选择同一列两次。而
因为kol_code
是一个毫无意义的别名,因为您实际上并没有更改列的名称。因此,您已使用相同的名称选择了相同的列两次。这是不符合逻辑的,没有用的,也是不允许的。a)不使用*,只选择您想要的列,或b)删除冗余的显式选择
FinancialMoein.kol_code