gpt4 book ai didi

mysql - 即使 where 条件失败,也从表 1 左连接表 2 返回记录

转载 作者:行者123 更新时间:2023-11-29 06:02:01 25 4
gpt4 key购买 nike

我有两个表(科目,学生)

Subjects-> SubjID, NAME
Students->ID, Name, SubjID

Subjects
SubjID Name

1 | Maths

Students
ID NAME, SubjID
11 | XYZ | 1

我需要的 ->

返回 ID 为 1 的主题详细信息,如果 ID 为 10 的学生有此主题,则返回。

这是我目前的查询。

select * from subjects sb
left join students st on st.SubjID=sb.SubjID

where sb.SubjID=1 and (st.ID is null or st.ID=10)

我得到的结果是:

如果主题 1 与(任何学生或与 ID 为 10 的学生相关联,我得到结果。

但是如果 Subject 1 与其他 ID 为 11 而不是 ID 10 的学生相关联,我不会得到任何结果。

我需要的是:即使主题与其他学生相关联,我也应该得到主题表的结果。

我们有什么办法可以做到这一点吗??

最佳答案

如果您不想看到除 ID=10 以外的任何人的学生记录,请将条件从 WHERE 移动到 ONWHERE 过滤行后加入,它只过滤 students 表中的行:

select * from subjects sb
left join students st on st.SubjID=sb.SubjID and st.ID=10
where sb.SubjID=1

关于mysql - 即使 where 条件失败,也从表 1 左连接表 2 返回记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44215716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com