MySql内部连接和“或"如果值等于0 [英] MySql inner join and "OR" if value equals 0

查看:97
本文介绍了MySql内部连接和“或"如果值等于0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有这个内部联接

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的用户,有没有人知道如何正确执行此操作?

What I want to do is to select all the events depending on the user IDSubject AND maybe if there is some event with IDSubject=0 also, I can get the ones that are depending from the user, but can't get the ones with IDSubject=0, have anyone got some clue of how to do it correctly?

如果有人需要我的数据库模型

My database model if anyone needs to see it

推荐答案

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
UNION SELECT IDEvent, events.IDSubject ,events.month ,events.year
      FROM events WHERE IDSubject='0'

这篇关于MySql内部连接和“或"如果值等于0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆