我有两个表reports,viewedids
第一个存储数据,第二个存储查看数据的用户 ID:
查看ID:
+-------+------+
| uid | rid |
+-------+------+
| 2 | 5 |
+-------+------+
每个 ( uid, rid) 表示uid已查看rid
我想*从表中选择并为当前用户reports添加视图状态(0或)。1(一个 JOIN 语句)
我该怎么做?
您可以使用左连接:
SELECT reports.*, viewedids.uid IS NOT NULL as view_state
FROM
reports LEFT JOIN viewedids
ON reports.id = viewedids.rid
AND viewedids.uid = @current_user
这将返回所有报告,并尝试使用 viewids ON 加入报告表reports.id = viewedids.rid AND viewedids.uid = @current_user。如果连接成功,则viewedids.uid 将不为空,并将viewedids.uid IS NOT NULL评估为1。否则将评估为0。
请在此处查看小提琴。