求一个SELECT-SQL语句

Gucciwu 2008-11-06 02:25:45
有一个记录学生选课情况的表,一个字段是学生编号,一个字段是所选课程编号,求一个SELECT-SQL选出所有学了A但是没有选B的学生编号出来,要求不用任何子查询
...全文
98 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-11-07
  • 打赏
  • 举报
回复
昨日思路集中在连接上了,如用MYSQL
select st_id from ttn
group by st_id
having(
instr(concat(',',group_concat(st_cur),','),',a,')>0
and
instr(concat(',',group_concat(st_cur),','),',b,')=0)
whalefish2001 2008-11-07
  • 打赏
  • 举报
回复
呵呵,刚看到楼主的帖子。
不过,来晚了,楼上已经解答出来了。
正想说呢,这个问题其实很简单。
我想说的跟楼上写的sql是一致的,就不赘述了。
其实,大家一般在工作中都不怎么用having。
bashanhu 2008-11-06
  • 打赏
  • 举报
回复
等待学习
懒得去死 2008-11-06
  • 打赏
  • 举报
回复
不知道表结构!没办法写语句。
Gucciwu 2008-11-06
  • 打赏
  • 举报
回复
可能是我用子查询没表达清楚,要求是只能有一个SELECE,在SQl语句的任何位置不能出现另外的SELECT,join里面也不能有SELECT。 有人说可以实现,但是我想了好久也没找到方法。。。
WWWWA 2008-11-06
  • 打赏
  • 举报
回复
or
select a1.st_id from (
select st_id from ttn where st_cur='A' group by st_id) a1
left join
(select st_id from ttn where st_cur='b' group by st_id) b1
on a1.st_id=b1.st_id
where isnull(b1.st_id)
WWWWA 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Gucciwu 的回复:]
要求不能用任何子查询,汗~~~
[/Quote]
EXISTS也不能用?

select A1.* from ttn a1 left join (
SELECT A.* FROM TTN A LEFT JOIN TTN B ON (B.st_id=A.st_id ) WHERE A.st_cur='B' ) b1
on B1.st_id=A1.st_id WHERE A1.st_cur='A'
AND ISNULL(B1.st_id)

没有用子查询来写成,只是表连接
Gucciwu 2008-11-06
  • 打赏
  • 举报
回复
要求不能用任何子查询,汗~~~
WWWWA 2008-11-06
  • 打赏
  • 举报
回复
不用EXISTS
select A1.* from ttn a1 left join (
SELECT A.* FROM TTN A LEFT JOIN TTN B ON (B.st_id=A.st_id ) WHERE A.st_cur='B' ) b1
on B1.st_id=A1.st_id WHERE A1.st_cur='A'
AND ISNULL(B1.st_id)

WWWWA 2008-11-06
  • 打赏
  • 举报
回复
SELECT * FROM TTN A WHERE NOT EXISTS(SELECT * FROM TTN WHERE st_cur='B' AND st_id=A.st_id) AND
A.st_cur='A'
Gucciwu 2008-11-06
  • 打赏
  • 举报
回复
所得答案应该只有st_id=1,上面说错了,汗~~~
Gucciwu 2008-11-06
  • 打赏
  • 举报
回复
test
st_id st_cur
1 A
1 C

2 C
2 D

3 A
3 B

4 A
4 B
4 C
4 D

所得答案只有A

楼上的兄弟方案得到的是所有有A和B的st_id
WWWWA 2008-11-06
  • 打赏
  • 举报
回复
贴数据吧,以供测试
select a.* from tt a left join tt b on a.学生编号=b.学生编号
where a.课程编号='A' AND B.课程编号<>'B' WHERE B.学生编号 IS NOT NULL

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧