为什么我得到#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
答案 0 :(得分:30)
可能是因为select *
中的*会从tip_usage
和tips
中选择两个具有相同名称的列。
答案 1 :(得分: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
答案 2 :(得分:2)
您的查询等同于:
SELECT COUNT(DISTINCT id)
FROM tips
,没有必要加入。
您确定不想要INNER JOIN
吗?
答案 3 :(得分:1)
遇到同样的问题,重命名为select子句救了我
SELECT people.id, vehicle.id ...
我用 AS 关键字将其重命名
SELECT people.id AS person_id, vehicle.id ...