我在数据库中有 10 个用户。每个用户都可以发布任意数量的链接。每个用户都可以看到其他用户发布的所有链接。
如果一个用户点击一个链接,例如:google.com,他将不会再看到它,但那些没有点击该链接的用户,他们仍然可以点击该链接。
为此,我有 2 个表(也许它们构建得很糟糕,除了它们与外键无关)。
linksPosted
id | link | user
1 g.com john
2 h.com patrick
3 i.com stephan
4 k.com bart
....
clicksMade
id | link | user
1 g.com jack
2 h.com nick
...
因此,有一个主页,每个用户都可以看到其他用户发布的链接。每次发布链接时,都会将其添加到 linksPosted 表中。好的。
然后,例如,Jack 单击了 g.com,因此他将无法再次单击 g.com。但是,由于尼克没有点击 g.com,他将能够点击它。
如何在 SQL 查询中向某些用户显示一些行而不向其他用户显示一些行?
我试过这个没有我想要的结果:
Select * from linksPosted Except Select * from ClicksMade
SELECT * FROM linksPosted WHERE id NOT IN(SELECT id FROM ClicksMade);
SELECT t1.* FROM linksPosted AS t1 LEFT OUTER JOIN ClicksMade AS t2 ON t1.word = t2.word AND 1.user = t2.user WHERE t2.id IS NULL
谢谢。