2017-06-23 73 views
-4

我想要一個查詢,顯示我的用戶沒有在他的播放列表中的軌道。我會得到的唯一參數是用戶的用戶名。需要一個MySQL查詢外面的這個圖

這張圖可能嗎?如果是這樣,你能提供一個查詢嗎?

Database Diagram

我已經嘗試了查詢,但沒有這麼succesfull。

SELECT * FROM TRACK 
INNER JOIN USER u on u.ID = TRACK.USERID 
INNER JOIN Playlist p on p.TrackID = TRACK.ID 
WHERE (u.ID IN (SELECT UserID FROM Playlist WHERE UserID = (SELECT ID FROM User WHERE username = 'Arjan'))) 
AND (TRACK.ID NOT IN (SELECT ID FROM TRACK)) 

不確定這裏缺少的東西。也許我只是想太複雜了。

+1

[幫助/切合主題]:*問題,要求作業幫助**必須包括到目前爲止你做過解決工作總結問題以及你解決問題的難點描述***我們不是一個家庭作業完成或代碼寫作服務。 –

+0

@KenWhite給我一分鐘,我會編輯我的文章。 – Levialhan

回答

1

我沒有得到實際嘗試的機會。但是,你的查詢應該是這樣的一個 -

Declare @UserName varchar(255) 
Set @UserName = N'Arjun' 

SELECT U.ID 
    ,U.UserName 
    ,P.ID 
    ,T.Id 
    ,T.TrackUrl 
    ,T.CreationDate 
FROM TRACK T 
INNER JOIN USER U ON U.ID = T.UserID 
LEFT JOIN Playlist P ON P.TrackID = T.ID 
    AND P.UserID = U.ID 
WHERE U.ID IN (
     SELECT DISTINCT ID 
     FROM User 
     WHERE UserName = @UserName 
     ) 
    AND P.ID IS NULL; 
+0

非常感謝您花時間寫這篇文章。我有點累,在我發佈的那一天無法知道。最終發現它,但我很欣賞你的幫助。 – Levialhan

+0

不客氣。我是一個沒有工作的全職自由人,他利用這段時間學習,有時甚至幫助我。 –