我正在创建一个网站,用户可以在其中发布链接并与之互动。
将为所有用户显示一个包含所有用户链接的表。
但是我需要问一个问题,因为当用户与链接交互时,该链接将不会再次显示。 也就是说,当用户单击链接时,该链接仅对于单击的用户消失
我已经完成了以下工作。
我有存储所有用户的表(用户)。
Table1 (users):
----------------
| id | username |
----------------
| 1 | user1 |
----------------
| 2 | user2 |
----------------
| 3 | user3 |
----------------
这是存储所有链接的第二张表
Table2 (links):
----------------
| id | urls |
----------------
| 1 | url1 |
----------------
| 2 | url2 |
----------------
| 3 | url3 |
----------------
现在假设(表1的USER2(用户))单击了以下链接(表2的URL1和URL2(链接))。
当用户单击url时,以下值将存储在第三表中,如下所示:
Table3 (blockuser):
-----------------------
| id | idLinks | users |
-----------------------
| 1 | 1 | user2 |
------------------------
| 2 | 2 | user2 |
-----------------------
现在,我希望通过以下方式向每个用户显示包含所有链接的表。 这是我想要实现的:
User1: User2: User3:
-------------------- -------------------- --------------------
| TABLE: ALL LINKS | | TABLE: ALL LINKS | | TABLE: ALL LINKS |
-------------------- -------------------- --------------------
| ID | URLS | | ID | URLS | | ID | URLS |
-------------------- -------------------- --------------------
| 1 | url1 | | 3 | url3 | | 1 | url1 |
-------------------- -------------------- --------------------
| 2 | url2 | | 1 | url2 |
-------------------- --------------------
| 3 | url3 | | 1 | url3 |
-------------------- --------------------
这就是我所能实现的。
User1: User2: User3:
-------------------- -------------------- --------------------
| TABLE: ALL LINKS | | TABLE: ALL LINKS | | TABLE: ALL LINKS |
-------------------- -------------------- --------------------
| ID | URLS | | ID | URLS | | ID | URLS |
-------------------- -------------------- --------------------
| 3 | url3 | | 3 | url3 | | 3 | url3 |
-------------------- -------------------- --------------------
也就是说,当用户单击链接时,不再为所有用户显示该链接。
但是我要实现的是,当用户单击链接时,该链接将仅针对单击该链接的用户停止显示。.....
这是我要显示表格的代码:
SELECT
*
FROM
links
LEFT JOIN
blockuser ON blockuser.idLinks = links.id
WHERE
blockuser.idLinks IS NULL
答案 0 :(得分:0)
为什么您必须使用SQL来显示表格?
SELECT * FROM links LEFT JOIN blockuser ON blockuser.idLinks = links.id WHERE blockuser.idLinks IS NULL
基本上使用子查询:
SELECT *
FROM links
WHERE id NOT IN
(SELECT idLinks FROM blockuser WHERE idUsers = 2)
或
SELECT *
FROM links
WHERE id NOT IN
(SELECT idLinks FROM blockuser WHERE users = 'user2')