mysql - 同一列MySQL中具有2个条件的多行
问题描述
如何在同一列MySQL中选择具有2个条件的多行
学生桌:
id name
1 Jhon
2 Anne
3 Charles
4 Bob
course_contract 的表格:
id lesson_code student_id
1 L1 1
2 L2 1
3 L1 2
4 L1 3
5 L2 3
6 L2 4
所以我想让学生同时学习课程代码 L1 和 L2。所以结果应该是 Jhon 和 Charles
解决方案
您必须加入表,group by name
并将条件放在having
子句中:
select s.name
from student s inner join lesson_contract l
on l.student_id = s.id
where l.lesson_code in ('L1', 'L2')
group by s.name
having count(distinct l.lesson_code) = 2
distinct
如果没有情况让学生上同一节课两次,您可以删除。
请参阅演示。
结果:
| name |
| ------- |
| Charles |
| John |
推荐阅读
- typescript - 联合和交集的打字稿交集不出错
- python - python导入psycopg2错误:ImportError:导入_psycopg时DLL加载失败:找不到指定的模块
- assembly - 你能在 64 位程序中 push/pop 一个 32 位寄存器吗?
- sql - 将 T-SQL 字段拆分为多行
- c - 当 Sytemd 启动每隔几个小时打开一个链接的 ac 程序时生成核心转储
- openssl - OpenSSL 证书验证失败:Letsencrypt root 已过期
- python - Webbrowser.open() 不会停止在新标签页中打开 url
- python - 将鼠标悬停在函数签名上时 Atom 禁用工具提示
- r - 围绕给定事件有效实现编号窗口变量
- heroku - Heroku pg:diagnose 的 CPU 突发平衡值