Вот запрос, который я использую:
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
Однако я получаю недопустимое использование групповой функции.
Как мне поступить?
Обновление:
Другая часть моего вопроса:
Можно ли это использовать как оператор удаления?
что-то вроде
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' дляобновление в предложении FROM