2012-01-24 2 views
0

Я не эксперт по sql, но я в процессе внесения изменений в пользовательский построенный форум и должен обновить новое поле в одной таблице с помощью счет из другой таблицы. Я пытаюсь сделать это без повторения всех 20 000 сообщений на форуме.Запрос в запросе - обновление таблицы1 из подсчета таблицы 2

Структура таблиц выглядит следующим образом:

POST_TABLE: 
ID, Post, Comment_count ... 

COMMENT_TABLE: 
ID, Comment, PostID ... 

, где PostID это идентификатор поста, что комментарий прикреплен к в POST_TABLE.

Я хочу, чтобы обновить новое поле COMMENT_COUNT с количеством комментариев, где PostID=ID для каждого поста (комментарии в посте, в основном)

Я предполагаю, один запрос может справиться с этим, но я не знаю, как построить его. Любая помощь будет оценена по достоинству.

ответ

1
update post_table p 
set Comment_count = (
    select count(id) from COMMENT_TABLE 
    where post_id = p.id 
) 
+0

Отлично, спасибо. – CarltonD

0
UPDATE post_table 
    SET comment_count = 
     (SELECT COUNT(1) 
      FROM comment_table 
      WHERE postid = post_table.id 
     ) 
; 
+0

Отлично, спасибо. – CarltonD

Смежные вопросы