Вот запрос я использую:mysql где count (column_name) = 1?
SELECT k_id, COUNT(k_id) AS k_count
FROM template_keyword_link
WHERE k_id IN(1,2,3,4,5)
GROUP BY k_id;
Этот запрос возвращает что-то вроде
1 | 6
2 | 1
3 | 4
4 | 1
5 | 9
Я хочу добавить что-то вроде AND COUNT(k_id) = 1
, так что я в конечном итоге с
2 | 1
4 | 1
Однако я не могу использовать функцию группы.
Как бы я это сделал?
Update:
Другая часть на мой вопрос.
Можно ли использовать это как заявление об удалении?
что-то вроде
DELETE FROM
template_keyword_link tkl
LEFT JOIN keywords k
ON tkl.k_id = k.k_id
WHERE tkl.k_id
IN(SELECT k_id, COUNT(k_id) AS k_count
FROM template_keyword_link
WHERE k_id IN(1,2)
GROUP BY k_id
HAVING k_count = 1);
Я получаю
У Вас есть ошибка в вашем SQL синтаксиса;
Так на основе обратной связи я изменил это использовать
DELETE tkl, k FROM
template_keyword_link tkl
LEFT JOIN keywords k
ON tkl.k_id = k.k_id
WHERE tkl.k_id
IN(SELECT k_id
FROM template_keyword_link
WHERE k_id IN(1,2)
GROUP BY k_id
HAVING COUNT(k_id) = 1);
Однако теперь я получаю
Вы не можете указать целевую таблицу 'TKL' для обновления в пункте ОТ
Не могли бы вы добавить точный запрос, который дает вам ошибку? – JoshD
что вам нужно показать id, чей счет 1 –