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

おそらく、 の * がとselect *から同じ名前の 2 つの列を選択するためです。tip_usagetips

于 2011-01-27T11:21:12.553 に答える
12

おそらく、内側の選択により、という名前の2つの列が生成されるため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 に答える