Добавить столбец mysql в таблицу из расчетов по значениям других таблиц - PullRequest
1 голос
/ 07 марта 2012

У меня есть две таблицы: user_shows и comments.Они оба имеют общий ключ как id.

Я хочу иметь столбец в user_shows, в котором будет храниться количество комментариев в таблице комментариев, когда user_shows.id = comments.id.Я попытался и придумал что-то вроде:

ALTER TABLE user_shows 
ADD num_comments INT(4) AS (SELECT id 
                              FROM comments, 
                                   user_shows 
                             WHERE comments.id = user_shows.id)

... но это не сработало.

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

вы должны написать два отдельных запроса, как это: -

ALTER TABLE user_shows 
ADD num_comments INT(4);

UPDATE user_shows SET num_comments = (SELECT count(id) FROM comments WHERE comments.id = user_shows.id);
1 голос
/ 07 марта 2012

Мое предложение для вас - создать представление для этой цели.

Примерно так:

create view user_shows_comments  as (

   SELECT u.*,count(c.id) as num_comments
   FROM user_shows  as u left join comments as c on u.id=c.user_id
   group  by c.user_id
) 

Используйте это представление для дальнейших запросов.Он будет автоматически обновляться таблицами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...