为什么我得到 #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
为什么我得到 #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
可能是因为 * in从和中select *
选择了两个同名的列。tip_usage
tips
可能是因为内部选择产生了两个名称为 的列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
您的查询等效于:
SELECT COUNT(DISTINCT id)
FROM tips
,不需要加入。
你确定你不想要一个INNER JOIN
代替吗?
有同样的问题,重命名为选择子句救了我
SELECT people.id, vehicle.id ...
我用AS关键字重命名了它
SELECT people.id AS person_id, vehicle.id ...