2017-06-23 3 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

実際に試してみる機会はありませんでした。しかし、あなたのクエリはこの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

ようこそ。私はフルタイムのフリーの男で、この時間を勉強したり、時にはできる限り助けてくれる仕事がありません。 –

関連する問題