执行mysql查询时出现重复列名错误?
说明:上述查询未运行其创建错误: 错误代码:1060 重复的列名“id” 要使上述查询成功运行,我必须输入列名而不是* 如下图所示:执行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
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