2013-01-09 29 views
2

我想知道哪個播放列表中有2首以上的歌曲。該聲明有效,但我希望播放列表的名稱和顯示歌曲的count()。我想我必須使用加入,但我沒有得到它應該如何工作。 有人可以幫忙嗎?加入計數

playlist table 
++++++++++++++ 
id 
name 

playlist_songs table 
++++++++++++++++++++ 
song_id 
playlist_id 


SELECT p.name FROM playlist p 
WHERE p.id in (SELECT s.playlist_id counter FROM playlist_songs s 
group by playlist_id 
having count(song_id)>2); 
+0

我看這個問題加入:**有樂趣加入* *;) –

回答

4

我想要的播放列表的名稱和計數()所顯示的歌曲 。

的使用JOININ謂詞的優勢,這其中:

SELECT 
    p.name, 
    COUNT(song_id) counter 
FROM playlist p 
INNER JOIN playlist_songs s ON p.id = s.playlist_id 
GROUP BY playlist_id 
HAVING COUNT(song_id) > 2; 
1

嘗試: -

SELECT 
    p.name, 
    count(s.song_id) 
FROM 
    playlist p 
INNER JOIN 
    playlist_songs s 
ON 
    p.id = s.playlist_id 
GROUP BY 
    p.name 
HAVING 
    COUNT(s.song_id) >= 2 

這是SQL服務器的語法,但應該在甲骨文工作。

+0

這個作品非常感謝你! – user1603200

0

這是你所需要的:

SELECT p.name as name, count(*) as counter 
FROM playlist p left outer join playlist_songs s on (p.id = s.playlist_id) 
GROUP BY p.name 
HAVING count(*) > 2 
0

請嘗試:

SELECT a.name 
FROM 
    playlist a INNER JOIN playlist_songs b 
    ON a.id = b.playlist_id 
GROUP BY a.name 
HAVING COUNT(*) >1 
0

始終使用如果可能的話

SELECT p.name play_list,count(s.song_id) total_songs 
FROM playlist p 
INNER JOIN playlist_songs s 
ON p.id = s.playlist_id 
GROUP BY p.name 
HAVING COUNT(s.song_id) >= 2;