php – mysql选择不是多对多关系的行

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – mysql选择不是多对多关系的行脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据结构,学生和小组之间有多对多的关系.我有三张桌子

如何仅选择不在特定组中的学生(例如group.id = 1)?

我做了一些搜索并尝试使用子查询,但只获得一个空集……

select * From students where not exists (select students.* from students left join students_groups on students_groups.student_id = student.id where students_groups.group_id = 1);

我该怎么查询?提前多了!

编辑
好吧,似乎以下两个终于有效……任何人都可以解释为什么我不需要加入表来工作?

select * from students where not exists (select * from students_groups where students_groups.student_id = student.id and student_groups.group_id = 1);

select * from students where id not in (select student_id from students_groups where group_id = 1);

解决方法

使用NOT IN应该可以正常工作:

SELECT * FROM Students
WHERE Id NOT IN (
    SELECT Student_Id FROM Students_Groups
    WHERE Group_Id = 1)

脚本宝典总结

以上是脚本宝典为你收集整理的php – mysql选择不是多对多关系的行全部内容,希望文章能够帮你解决php – mysql选择不是多对多关系的行所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。