一道面试题的思考
来源:互联网 发布:牛津初阶英语词典淘宝 编辑:程序博客网 时间:2024/04/28 08:23
三?表,要??出??了所有?程的学生的成?
Example:
std表
std_id std_name
0001 alex
0002 bill
0003 cliton
0004 duke
course表
course_id course_name
2001 english
2002 math
2003 physics
score表
std_id course_id score
0001 2001 81
0002 2001 91
0001 2003 24
0003 2002 62
0001 2002 54
?出:
alex english 81
alex math 54
alex physics 91
想了半天,没什?思路,估?会用到HAVING,IN,EXISTS之?,可是自己??几个??字的用法太不熟悉,借?个机会好好看看。
1.?出一??程都没有?的学生姓名,?个比???,用个EXISTS就?定
SELECT std_name,std_id FROM std
WHERE NOT EXISTS
(SELECT * FROM score
WHERE std_id=std.std_id)
想想EXISTS和IN有很多共同点,因此用IN??也能解决??
SELECT std_name,std_id FROM std
WHERE std_id NOT IN
(SELECT std_id FROM score)
2.?出?了所有?程的学生的姓名,?个就比?麻?了,居然要用?个NOT EXISTS
SELECT std_name
FROM std
WHERE NOT EXISTS
(SELECT *
FROM course
WHERE NOT EXISTS
(SELECT *
FROM score
WHERE (std_id=std.std_id AND course_id=course.course_id)
)
)
USE tempdb
GO
CREATE TABLE std
(std_id VARCHAR(4), std_name VARCHAR(100))
GO
CREATE TABLE course
(course_id VARCHAR(4), course_name VARCHAR(100))
GO
CREATE TABLE score
(std_id VARCHAR(4), course_id VARCHAR(4) , chengji INT)
GO
INSERT INTO std
SELECT '0001' , 'alex' UNION ALL
SELECT '0002' , 'bill' UNION ALL
SELECT '0003' , 'cliton' UNION ALL
SELECT '0004' , 'duke'
GO
INSERT INTO COURSE
SELECT '2001' , 'english' UNION ALL
SELECT '2002' , 'math' UNION ALL
SELECT '2003' , 'physics'
GO
INSERT INTO score
SELECT '0001' , '2001' , 81 UNION ALL
SELECT '0002' , '2001' , 91 UNION ALL
SELECT '0001' , '2003' , 24 UNION ALL
SELECT '0003' , '2002' , 62 UNION ALL
SELECT '0001' , '2002' , 54
- 一道面试题的思考
- 一道面试题的思考。。。
- 一道面试题的思考
- 一道面试题的思考
- 关于一道微软面试题的思考
- 由一道面试题引发的思考
- 一道C面试题引发的思考
- 一道值得思考的面试题
- 对一道微软面试题的思考
- 一道淘宝校园面试题的思考
- 百度一道面试题引发的思考
- 一道面试题引发的思考
- 一道360面试题引发的思考
- 一道360面试题引发的思考
- 一道面试题引发的思考
- 一道面试题引发的思考
- 一道js面试题引发的思考
- 一道面试题引发的思考
- 构建下一代软件架构
- 在同一个局域网里,知道对方的IP地址,怎样才能知道她的计算机名?
- 应用服务器的技术发展趋势
- [引]SQLServer和Access、Excel数据传输简单总结
- 点评主流中间件技术平台
- 一道面试题的思考
- 正则表达式(regular expression)
- 我问自己怎样能方便快捷的在本地进行jsp网站应用开发?
- 绿茶设计2004商业
- 别了,CSDN Blog
- 男人25岁前的忠告
- 述职报告
- 人生25句经典
- 微软总裁比尔.盖茨11点忠告