【发布时间】:2016-01-11 21:45:15
【问题描述】:
所以我有这个内部连接
SELECT IDEvent,events.IDSubject,events.month,events.year
FROM events
INNER JOIN subjects ON events.IDSubject = subjects.IDSubject
INNER JOIN classes ON subjects.IDClass = classes.IDClass
INNER JOIN students ON classes.IDClass = students.IDClass
WHERE events.month=10
AND events.year=2015
AND (students.DNI=DNI OR events.IDSubject='0')`
我想要做的是根据用户 IDSubject 选择所有事件,也许如果还有一些 IDSubject=0 的事件,我可以从用户那里获取那些依赖于用户的事件,但无法获取IDSubject=0 的,有人知道如何正确执行吗?
如果有人需要,我的数据库模型
【问题讨论】:
-
可能你的意思是 events.IDSubject IS NULL?
-
不,events.IDSubject = 0 表示该事件适用于所有人,不仅适用于学生的主题,特别是 '0' 是 varchar
-
听起来你想要一个
left outer加入IDSubject,然后是一个 where 语句说events.IDSubject = 0 or subjects.IDSubject is not null。 -
subjects.IDSubject、events.IDSubject 和 students.IDSubject 是一个长度为 30 的 varchar
-
是否可以不使用左连接而仅使用内连接?