Привет У меня есть таблицы, как это:MYSQL UPDATE с IN и подзапрос
запись таблицы:
ид | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0
таблица комментариев:
идентификатор | eid | комментарий
_____________________
1 | 1 | комментарий sdfd
2 | 1 | испытательные испытания
3 | 1 | текст комментария
4 | 2 | фиктивный комментарий
5 | 2 | образец комментария
6 | 1 | фг FGH DFH
запросы я пишу:
UPDATE entry
SET total_comments = total_comments + 1
WHERE id IN (SELECT eid
FROM comments
WHERE id IN (1,2,3,4,5,6))
результатов я получаю: запись
стола:
идентификатора | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0
Ожидаемые результаты:
запись таблицы:
идентификатор | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0
Любая помощь будет оценена по достоинству.
да, я ищу что-то подобное ... Моим мотивом является запуск запроса на обновление на основе подзапроса .... его обновление «total_comments» в таблице «ввода» с acutal количество комментариев, для удостоверения личности в «записи» если я запустить запрос, который я указал, что только добавляет 1 для всех количества комментариев, найденного в subqery Вот, что SQL-запрос превращается после прогонов подзапросов:. UPDATE записи SET total_comments = total_comments + 1 WHERE id IN (1,1,1,2,2,1) , поэтому обновление выполняется только один раз для 1 и 2 идентификаторов в таблице входа. Coz его как работает IN. Но я хочу, чтобы некоторые из них запускали его 4 раза в течение 1 и 2 раз для 2. – Johal
Единственный способ, которым я думаю, - запустить подзапрос, что-то вроде этого, что я не знаю, как это сделать: UPDATE entry SET total_comments = total_comments + @count WHERE id IN (SELECT eid, count (*) as @count FROM comments WHERE id IN (1,2,3,4,5,6)) , но тогда In не работает coz из нескольких строк и также я не знаю, как ссылаться @count в установленном состоянии :( – Johal