2014-03-07 67 views
0

我一直試圖破解這個螺母幾個小時,但我無法弄清楚需要什麼組合的查詢代碼來實現我正在尋找的確切結果。兩個表格之間的數據合併

我有兩個表:

音樂和播放列表

音樂的字段:

ID(主),TRACK_NAME,FILE_PATH,DATE_ADDED,藝術家,專輯

爲字段播放列表:

PID,ID(與音樂的多對一關係),Number_of_Plays

我所試圖做的是對音樂的每個ID結合所有的記錄中的所有播放列表,然後求和Number_of_Plays場

下面是據我已經得到了:

Select Music.ID, Music.Track_Name, Playlists.PID From Music 
Join Playlists On Music.ID = Playlists.ID 
Where Playlists.ID In (
Select ID From Playlists 
Group By ID 
Having Count(Number_of_Plays) > 1) 

的這隻產生一個按照具有多個播放次數的記錄的ID排序的列表。我已經能夠找出問題的後半部分,其中遍及所有播放列表的歌曲的播放次數彙總在一起,但不知道如何不顯示Number_of_Plays等於1的那些記錄。這是我發現的查詢做的需要什麼下半年的一部分:

select PID, ID, sum(Number_of_Plays) As Total from Playlists 
group by PID, ID LEFT(`ID`,11) 
order by PID 

這將基於ID的價值Number_of_Plays字段,但不會刪除只對其中1個播放記錄。我一直試圖在最後的45分鐘內以某種方式組合這兩個查詢,但是我沒有收到任何語法錯誤消息吐在我身上。

回答

0

我設法弄明白:

Select Music.ID, Music.track_name, Playlists.PI, sum(Playlists.Number_of_Plays) As Total_Plays From Music 
Join Playlists On Music.ID = Playlists.ID 
Group By Playlist.ID, LEFT('ID', 11) Having Count(Playlist.ID) > 1 

這產生一個結果是有由ID訂購的記錄,並總結出了玩次數。