2013-06-24 39 views
0

我有两个表reports & viewedids
第一个存储数据和观察数据的第二个存储的用户ID:从其他表添加视图状态选择结果

viewedids:

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

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

我想要从reports表中选择*,并为当前用户添加视图状态(01)。 (A JOIN声明)
我该怎么做?

回答

1

您可以使用LEFT 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 

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

请参阅小提琴here

相关问题