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语句中任何表达式出现的位置

只出现在子查询中而没有出现在父查询中的表不能包含在输出列中
...全文
54 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
非技术区

2.3w+

社区成员

Java 非技术区
社区管理员
  • 非技术区社区
加入社区
帖子事件
创建了帖子
2020-03-28 11:55
社区公告
暂无公告