29

为什么我得到 #1060 - 重复的列名 'id'

SELECT COUNT(*) FROM (SELECT * FROM `tips` `t` LEFT JOIN
tip_usage ON tip_usage.tip_id=t.id GROUP BY t.id) sq
4

4 回答 4

41

可能是因为 * in从和中select *选择了两个同名的列。tip_usagetips

于 2011-01-27T11:21:12.553 回答
12

可能是因为内部选择产生了两个名称为 的列id。由于您没有使用这些列,您只需将选择更改为:

SELECT COUNT(*) FROM (SELECT t.id FROM `tips` `t` 
LEFT JOIN tip_usage ON tip_usage.tip_id=t.id 
GROUP BY t.id) sq 
于 2011-01-27T11:21:36.253 回答
0

您的查询等效于:

SELECT  COUNT(DISTINCT id)
FROM    tips

,不需要加入。

你确定你不想要一个INNER JOIN代替吗?

于 2011-01-27T11:23:07.783 回答
0

有同样的问题,重命名为选择子句救了我

SELECT people.id, vehicle.id ...

我用AS关键字重命名了它

SELECT people.id AS person_id, vehicle.id ...
于 2018-07-04T01:34:28.757 回答