执行mysql查询时出现重复列名错误?

执行mysql查询时出现重复列名错误?,mysql,sql,Mysql,Sql,说明:上述查询未运行其创建错误: 错误代码:1060 重复的列名“id” 要使上述查询成功运行,我必须输入列名而不是* 如下图所示: SELECT t1.*,t2.* FROM (SELECT pp.id as ppid, pp.*,tab3.*,tab2.* FROM tab1 AS pp LEFT JOIN tab3 ON pp.id = tab3.name_id LEFT JOIN tab2 ON pp.id = tab2.name_id) AS t1 JOIN ( SEL

说明:上述查询未运行其创建错误:

错误代码:1060 重复的列名“id”

要使上述查询成功运行,我必须输入列名而不是* 如下图所示:

SELECT t1.*,t2.* FROM  

(SELECT pp.id as ppid, pp.*,tab3.*,tab2.*  FROM tab1 AS pp 
LEFT JOIN tab3 ON pp.id = tab3.name_id 
LEFT JOIN tab2 ON pp.id = tab2.name_id) AS t1

JOIN 
(
SELECT tab2.id as colname_id,tab2.*,tab3.* FROM tab2 
LEFT JOIN tab3 ON tab2.coltestconsent_id = tab3.coltestconsent_ID
) AS t2

WHERE t1.ppid = t2.colname_id;

要求:我想获取所有表的所有列值。每个表有60-80列。我不想手动将列名放入查询中,因为它们有很多列。

不需要派生表:

SELECT t1.*,t2.* FROM  

(SELECT pp.first_name,pp.id ppid,tab3.id AS coltestrisk_id,tab2.id AS coltest_id  FROM tab1 AS pp 
LEFT JOIN tab3 ON pp.id = tab3.name_id 
LEFT JOIN tab2 ON pp.id = tab2.name_id) AS t1

JOIN 
(
SELECT tab2.coltestconsent_id AS coltestconsent_id,tab3.coltestconsent_ID AS colriskconsent_id,tab2.name_id AS colname_id,tab3.name_id AS coltest_nameid FROM tab2 
LEFT JOIN tab3 ON tab2.coltestconsent_id = tab3.coltestconsent_ID
) AS t2

WHERE t1.ppid = t2.colname_id;
你没有提到*就像你的代码:

可能是因为select*中的*选择了两个同名的列名称

SELECT t1_pp.id AS ppid, t2_tab2.id AS colname_id, *
FROM   (
              tab1 AS t1_pp 
    LEFT JOIN tab3 AS t1_tab3 ON t1_pp.id = t1_tab3.name_id 
    LEFT JOIN tab2 AS t1_tab2 ON t1_pp.id = t1_tab2.name_id
       ) JOIN (
              tab2 AS t2_tab2
    LEFT JOIN tab3 ON t2_tab3 USING (coltestconsent_id)
       ) ON t1_pp.id = t2_tab2.id

您还有一个错误,在as t2之后,您尚未应用on@AK47:在MySQL中,连接谓词是可选的。
SELECT pp.id as ppid, pp.*,tab3.*,tab2.*  FROM tab1 AS pp