我有一个如下的选择查询:
SELECT * FROM A
LEFT JOIN B ON B.x = A.y
LEFT JOIN C ...
WHERE ....
GROUP BY ...
ORDER BY ...;
所有表都有id
列,查询效果很好。结果有许多id
列没有错误,驱动程序处理模棱两可的问题。但我需要限制结果,所以我用另一个选择查询包装它,如下所示:
SELECT * FROM (
SELECT * FROM A
LEFT JOIN B ON B.x = A.y
LEFT JOIN C ...
WHERE ....
GROUP BY ...
ORDER BY ...
) AS x WHERE 1 LIMIT 1000;
现在我得到Duplicate column name 'id'
错误!
PS:完整的查询很复杂,我需要使用*
(不可能列出列名),由于joins,group by order by等,我不能在主查询中使用limit。