【问题标题】:add view state from other table to select result从其他表添加视图状态以选择结果
【发布时间】:2013-06-24 22:40:12
【问题描述】:

我有两张桌子reports & viewedids
第一个存储数据,第二个存储查看数据的用户 ID:

查看ID:

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

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

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

【问题讨论】:

    标签: mysql sql join


    【解决方案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
    

    这将返回所有报告,并尝试加入已查看 ID 为 ON reports.id = viewedids.rid AND viewedids.uid = @current_user 的报告表。如果连接成功,viewedids.uid 将不为空,viewedids.uid IS NOT NULL 将被评估为 1,否则将被评估为 0。

    请看小提琴here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2013-10-30
      • 2012-06-21
      • 1970-01-01
      • 2016-12-25
      相关资源
      最近更新 更多