学生(学号,姓名)
选课A(学号,课程号)
选课B(学号,课程号)查找在选课A中的学生姓名:
mySql = "select 学生.姓名 from 学生 where 学号 in(select 学号 from 选课A)"问题:
如何用IN方法写 既在选课A,又在选课B中的学生?
或者在选课A,或者在选课B中的学生?
选课A(学号,课程号)
选课B(学号,课程号)查找在选课A中的学生姓名:
mySql = "select 学生.姓名 from 学生 where 学号 in(select 学号 from 选课A)"问题:
如何用IN方法写 既在选课A,又在选课B中的学生?
或者在选课A,或者在选课B中的学生?
from 学生 a join 选课A b on a.学号=b.学号
join 选课B c on a.学号=c.学号
既在选课A,又在选课B中的学生
如何用IN方法写 在选课A,或者在选课B中的学生?
Re:
select distinct 姓名 from 学生
where 学号 in(select 学号 from 选课A
Union All
Select 學號 From 選課B)如何用IN方法写 既在选课A,又在选课B中的学生?
Re:
select distinct 姓名 from 学生
where 学号 in(
select 学号 from 选课A
)
and 学号 in(
Select 學號 From 選課B
)
不过建议你最好还是用连接的方法,因为用in速度会比较慢,建议用这个:
1:
select distinct a.姓名 from 学生 a, 选课A b,選課B c
where a.学号=b.学号 and a.学号=b.学号
2:
select distinct a.姓名 from 学生 a, 选课A b,選課B c
where a.学号=b.学号 or a.学号=b.学号