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

不客气。我是一个没有工作的全职自由人,他利用这段时间学习,有时甚至帮助我。 –