SqlYog子查询

猫在裙角. 2020-03-28 11:55:33
in
not in
exists


检测对象是否存在
IF EXISTS

EXISTS子查询的语法 : select * from 表名 where exists(子查询语句)
子查询语句有返回结果: EXISTS子查询结果为TRUE
子查询语句无返回结果: EXISTS子查询结果为FALSE, 外层查询不执行

制作成绩单:
SELECT `studentName` 姓名,
( SELECT `gradeName` FROM `grade` WHERE `gradeId`=`subject`.`gradeId` ) AS 课程所属年级 , #子查询嵌套父查询得到年级名
`subjectName` 课程名称, `examDate` 考试日期, `studentResult` 成绩
FROM `result` r1
INNER JOIN `student` ON r1.`studentNo`=`student`.`studentNo`
INNER JOIN `subject` ON `subject`.`subjectNo`=r1.`subjectNo`
WHERE r1.`examDate` IN
(
SELECT MAX(`examDate`) FROM `result` r2
WHERE r1.`subjectNo` = r2.`subjectNo`
#主查询和子查询间参数值绑定
GROUP BY r2.`subjectNo`
)

ORDER BY subject.gradeId;


使用临时表保存查询结果 CREATE TEMPORARY TABLE 表名(查询语句);

子查询注意事项
子查询语句可以嵌套在SQL语句中任何表达式出现的位置

只出现在子查询中而没有出现在父查询中的表不能包含在输出列中
...全文
16 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复

还没有回复,快来抢沙发~

发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

Java 非技术区
申请成为版主
帖子事件
创建了帖子
2020-03-28 11:55
社区公告
暂无公告