标签:tom 输出 等价 内容 select -- 子查询 查询 结果
表达式 θ some(子查询)
表达式 θ all (子查询)
语法中,θ是比较运算符 <,>,>=,<=,=,<>
如果表达式的值至少与子查询的结果的某一个值相比较满足θ关系,则“表达式 θ some(子查询)”的结果便为真;
如果表达式的值与子查询结果的所有值相比都满足θ关系,则表达式θ all(子查询)的结果便为真
表内容
select * from teacher
+----------------+-----------------+
| Name | Money |
+----------------+-----------------+
| Tom | 1500 |
| David | 1800 |
| Andy | 2560 |
+----------------+-----------------+
利用ThetaAll子查询
Select Name From Teacher
Where Money <= all( Select Money From Teacher )
+----------------+
| Name |
+----------------+
| Tom |
+----------------+
子查询首先找出了所有教师的工资,然后ThetaAll查询工资比所有教师的工资都低的教师姓名。输出为Tom。
表内容
mysql>select * from SC
+---------------+---------------+-----------------+
| SID | CID | Score |
+---------------+---------------+-----------------+
| 001 | 高等数学 | 85 |
| 002 | 高等数学 | 90 |
| 003 | 高等数学 | 60 |
| 004 | 高等数学 | 75 |
+---------------+---------------+-----------------+
利用ThetaSome子查询
select SID from sc
where CID='高等数学' and Score < some( select Score From SC where CID='高等数学' )
+---------------+
| SID |
+---------------+
| 001 |
| 003 |
| 004 |
+---------------+
子查询首先找出了高等数学课所有同学的成绩,然后thetasome查询“高等数学成绩比子查询结果中任意一个成绩小的同学学号”,就找出了成绩不是最高的同学。
表内容
SC
+---------------+---------------+-----------------+
| SID | CID | Score |
+---------------+---------------+-----------------+
| S001 | C001 | 40 |
| S001 | C002 | 65 |
| S002 | C001 | 59 |
| S002 | C002 | 45 |
| S002 | C003 | 18 |
+---------------+---------------+-----------------+
student
+---------------+----------------+
| SID | Name |
+---------------+----------------+
| S001 | Tom |
| S002 | David |
+---------------+----------------+
利用thetaAll子查询
select Name from student
where 60 > all(select Score from SC where SID = student.SID )
+----------------+
| Name |
+----------------+
| David |
+----------------+
表达式 = some(子查询)
表达式 in (子查询)是等价的
但<> some 与 not in不等价!!!
not in 等价于 <> all
标签:tom 输出 等价 内容 select -- 子查询 查询 结果
原文地址:https://www.cnblogs.com/velscode/p/10496485.html