我有两个表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。
请在此处查看小提琴。