Ответ 1
Возможно, потому что * in select *
выбирает два столбца с тем же именем из tip_usage
и tips
.
Почему я получаю # 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
?