I am trying to select all data belonging to playlisticons table except for data that user Tom also have in playlist table.
Edit: I also have other users in the playlist table and hence I only want to return all playlisticons except for those that user Tom already have.
My code looks something like this:
SELECT
playlisticons.name
,playlisticons.link
FROM
playlisticons
LEFT JOIN playlist ON
playlisticons.name != playlist.icon WHERE playlist.userFK = 'Tom';
playlisticons.name and playlist.icon shares the same value playlisticons:
name | link |
---|---|
Heart | link1 |
Bookmark | link2 |
Like | link3 |
playlist:
playlistID | name | userFK | icon |
---|---|---|---|
1 | Favourite | Tom | Heart |
2 | Watchlist | Tom | Bookmark |
Current output:
name | link |
---|---|
Heart | link1 |
Bookmark | link2 |
Like | link3 |
Like | link3 |
Expected output:
name | link |
---|---|
Like | link3 |
CodePudding user response:
SELECT
playlisticons.name,
playlisticons.link
FROM playlisticons
WHERE
playlisticons.name NOT IN (
SELECT
icon
FROM playlist
WHERE userfk = 'Tom'
)
;
CodePudding user response:
SELECT NAME, LINK FROM PLAYGROUND.PLAYLISTICONS
LEFT JOIN PLAYGROUND.PLAYLIST ON PLAYLISTICONS.name = PLAYLIST.ICON
WHERE PLAYGROUND.PLAYLIST.USERFK IS NULL;