我有2个表:“事件”和“ beschikbaar”。在“ beschikbaar”表中,我存储了使自己可用于特殊事件的用户的事件ID和用户ID。
我想从事件表中选择所有事件,但beschikbaar表中为当前用户列出的事件除外。
这是我的sql:
SELECT events.id, events.title, events.start, events.end, beschikbaar.userID,beschikbaar.eventID
FROM events left join beschikbaar on events.id = beschikbaar.eventID
WHERE beschikbaar.userID <> 6 OR beschikbaar.eventID is null
我现在遇到的问题是,当其他用户允许他参加同一事件时,它仍在列表中。
包括两个表的打印屏幕:
如您所见,由于其他用户选择了该事件,因此左侧表中仍显示“曼巴露天”和“公园里的大型演出”事件。
有人知道如何使我的查询处理此问题吗?
答案 0 :(得分:0)
您要将条件移至ON
子句:
SELECT e.id, e.title, e.start, e.end, b.userID, b.eventID
FROM events e left join
beschikbaar b
on e.id = b.eventID and b.userID = 6
WHERE b.eventID is null;