2014-02-18 43 views
0

我有一個名爲「明星」的表有兩列名人,電影和其他表名爲「發佈」與兩列名人,專輯。我想創建一個查詢,向我顯示一個帶有樹列的表格:名人,專輯數量,電影數量。查詢SQL與兩個表在一個,並顯示總數

因此,我的想法是,我想顯示已經播放到電影(從星表),並已製作了一個專輯(從發佈表),並在電影和專輯數量以下的名人。

謝謝

+0

如何欄中的兩個「的專輯數量」有什麼不同? –

+0

我剛剛編輯的電影 – user3325555

回答

0

也許這是你在找什麼:

SELECT movie.celeb, movieCount, albumCount 
FROM 
    (SELECT celeb, count(1) movieCount 
    FROM star GROUP BY celeb) movie INNER JOIN 
    (SELECT celeb, count(1) albumCount 
    FROM releases GROUP BY celeb) album ON movie.celeb=album.celeb 
+0

它顯示了事實上的所有CELEBS名單,我只想讓那些曾在電影中播放過的人在同一時間製作了一張專輯。謝謝你 – user3325555

+0

好的,我修改它,所以它只會顯示那些記錄在兩個表中,使用'INNER JOIN'來代替。 –

+0

再次感謝:) – user3325555

0

我假設你的意思是「件數」和「電影的數量」。如果這是正確的,這應該工作:

select celeb, 
     sum(case when num_type = 'movie' then num_recs else 0 end as num_movies, 
     sum(case when num_type = 'album' then num_recs else 0 end as num_albums 
    from (select celeb, count(*) as num_recs, 'movie' as num_type 
      from star 
     group by celeb 
     union 
     select celeb, count(*) as num_recs, 'album' as num_type 
      from releases 
     group by celeb) x 
group by celeb 
0
select s.celeb, count(distinct movie), count(distinct album) 
from star s join releases r on r.celeb = s.celeb 
group by s.celeb