给出三个表之间的匹配 SQL
Give the Match between Three Tables SQL
我正在编写一个脚本来检查新闻是否被多个用户看到,以便检查该用户从未检查过的新新闻。我认为服务不断要求服务器提供用户从未阅读过的新闻。但我不知道怎么写。(我用过笛卡尔积,但没用)。
换句话说,如何检查用户是否没有阅读此新闻并给我提供通知的方法。
如果有人可以帮助我请?
这些是我的 database:Users、新闻和已看中的三个 table。
这是用户 table:
User_ID | User_Name
--------------------
1 | John
2 | Carl
3 | Tomas
4 | Adam
5 | Nancy
新闻 Table:
News_ID | News_Text
--------------------
1 | Hello World
2 | This is My car
3 | I had Ate pizza
4 | No Body Want Programming
5 | C++ Programming
这也是看过的 Table:
ID | User_Id | News_Id
---------------------------
1 | 1 | 2
2 | 1 | 3
3 | 4 | 1
4 | 5 | 3
5 | 1 | 4
这应该得到 News_ID 的所有 "UserIdYouCareAbout" 没有看到的新闻(将 替换为您要查询的 User_ID)。
SELECT News.News_ID AS 'Unseen News ID'
FROM News
LEFT JOIN Seen ON Seen.News_ID = News.News_ID AND Seen.User_ID = <UserIdYouCareAbout>
WHERE
Seen.ID IS NULL
SELECT *
FROM News
WHERE News_ID NOT IN (
SELECT News_Id FROM Seen WHERE User_Id = <userID>
)
我正在编写一个脚本来检查新闻是否被多个用户看到,以便检查该用户从未检查过的新新闻。我认为服务不断要求服务器提供用户从未阅读过的新闻。但我不知道怎么写。(我用过笛卡尔积,但没用)。 换句话说,如何检查用户是否没有阅读此新闻并给我提供通知的方法。 如果有人可以帮助我请? 这些是我的 database:Users、新闻和已看中的三个 table。
这是用户 table:
User_ID | User_Name
--------------------
1 | John
2 | Carl
3 | Tomas
4 | Adam
5 | Nancy
新闻 Table:
News_ID | News_Text
--------------------
1 | Hello World
2 | This is My car
3 | I had Ate pizza
4 | No Body Want Programming
5 | C++ Programming
这也是看过的 Table:
ID | User_Id | News_Id
---------------------------
1 | 1 | 2
2 | 1 | 3
3 | 4 | 1
4 | 5 | 3
5 | 1 | 4
这应该得到 News_ID 的所有 "UserIdYouCareAbout" 没有看到的新闻(将
SELECT News.News_ID AS 'Unseen News ID'
FROM News
LEFT JOIN Seen ON Seen.News_ID = News.News_ID AND Seen.User_ID = <UserIdYouCareAbout>
WHERE
Seen.ID IS NULL
SELECT *
FROM News
WHERE News_ID NOT IN (
SELECT News_Id FROM Seen WHERE User_Id = <userID>
)