gpt4 book ai didi

php - 如果未在多对多表中注册,如何选择行

转载 作者:行者123 更新时间:2023-11-30 22:57:08 24 4
gpt4 key购买 nike

我有 3 个表:

学生

id, name
1, Max
2, Brian

id, code, type
1, AIF102, Lab
2, AIF102, Class
3, AIF104, Class

学生类(class)

student_id, class_id
1, 1

我如何选择代码未在 student_class 注册的学生所在的代码行。即,只需选择学生为 Max 的代码 AIF104。选择代码 AIF102 和 AIF104,其中学生是 Brian。对不起,英语不好,谢谢。

最佳答案

您可以使用 left join with is null 来获取特定学生未注册的类(class)

select c.*
from class c
left join student_class sc on(c.id = sc.class_id )
left join student s on (s.id = sc.student_id and s.id = 1 )
where c.`type` = 'Class'
and sc.student_id is null

Demo

当然是同名的另一种尝试

select c.*
from class c
where not exists (
select c1.code
from class c1
left join student_class sc on(c1.id = sc.class_id )
where sc.student_id = 1
and c1.code = c.code
)

Demo

关于php - 如果未在多对多表中注册,如何选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25811137/

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