我有一个Course Table
,所有用户都可以选择相关课程并将其保存在CourseUserMapping Table
中。现在我的要求是我要显示用户未在course Table
中选择的所有课程并隐藏所选课程列表。
select c.* from Course c full outer join CourseUserMapping cum on c.CID = cum.CID
where c.CID is NULL Or cum.CID is NULL and cum.UserID='u3'
上述查询无法正常工作。
为了更好地理解我创建了一张图片
答案 0 :(得分:1)
将联接更改为LEFT JOIN
并修改WHERE
子句:
select c.*
from Course c
left join CourseUserMapping cum
on c.CID = cum.CID and
cum.UserID = 'u3'
where cum.CID is NULL
上面的LEFT JOIN
将保留所有课程,然后仅保留那些未映射到任何用户的课程。这包含在where cum.CID is NULL
条件中。