2012-03-07 5 views
1

user_showscomments과 같은 두 개의 테이블이 있습니다. 둘 다 공통적으로 id 키가 있습니다.다른 테이블의 계산에서 테이블에 mysql 열을 추가하십시오.

user_shows.id = comments.id 일 때 주석 표의 주석 수를 저장하는 열을 user_shows에 갖고 싶습니다. 나는 다음과 같은 것을 생각해 냈다.

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

... 그러나 이것은 작동하지 않았다. 당신을 위해

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); 
+0

열 추가 및 채우기는 별도의 쿼리입니다. 즉, 별도의 쿼리를 의미합니다. –

+0

내 쿼리를 삭제 해 주셔서 감사합니다. OMG Ponies는 방금 동시에 두 가지 작업을 수행해야한다고 생각했습니다. –

답변

4

은이 같은 두 개의 쿼리를 작성해야합니다. 다음과 같은

뭔가 :

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 
) 

를 사용하여 더 조회에이 볼 수 있습니다. 테이블과 함께 자동으로 업데이트됩니다.

1

나의 제안이 목적의 view을 만드는 것입니다 -이 :

관련 문제