0

我有两个表reportsviewedids
第一个存储数据,第二个存储查看数据的用户 ID:

查看ID:

+-------+------+
|  uid  | rid  |
+-------+------+
|   2   |   5  |
+-------+------+

每个 ( uid, rid) 表示uid已查看rid

我想*从表中选择并为当前用户reports添加视图状态(0或)。1(一个 JOIN 语句)
我该怎么做?

4

1 回答 1

1

您可以使用左连接:

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。

在此处查看小提琴。

于 2013-06-24T22:42:05.827 回答