暂无 |

6 关联子查询

在查询或维护的查询中,都有可能会使用子查询来提供执行叙述所需要的资料:

mysql_10_snap_44

在使用子查询的的时候,通常不会跟外层查询有直接的关系,也就是子查询不会使用外层查询的资料;不过遇到一些比较特殊的需求时,在「WHERE」或「HAVING」子句中的子查询,也需要使用外层查询的资料来执行判断的工作,这样的叙述称为「关联子查询、correlated subqueries」:

mysql_10_snap_45

在「WHERE」或「HAVING」子句中用来设定条件的子查询,可以依照需求使用像「IN」、「ANY」这些运算子来判断条件是否符合。除了上列以经讨论的比较运算子外,还有一个「EXISTS」运算子:

mysql_10_snap_51

「EXISTS」运算子判断条件是否成立的依据比较不一样,如果子查询有任何纪录资料回传,条件就算成立:

mysql_10_snap_52

「EXISTS」运算子通常会在使用关联子查询中:

mysql_10_snap_53

「EXISTS」与「NOT」一起使用时,就可以完成下列的查询需求:

mysql_10_snap_54

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论