子查询就是查询中又嵌套的查询,嵌套的级数随各数据库厂商的设定而有所不同,一般最大嵌套数不超过15级,实际应用中,一般不要超过2级,否则代码难以理解.一般来说,所有嵌套子查询都可改写为非嵌套的查询,但是这样将导致代码量增大.子查询就如递归函数一样,有时侯使用起来能达到事半功倍之效,只是其执行效率同样较低,有时用自身连接可代替某些子查询,另外,某些相关子查询也可改写成非相关子查询
表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据
子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)
子查询
最普遍的作用是当作上层查询的限制条件,比如select a from b where a in (select a from c where x=y) ,现实世界各种系统中,各式各样的关系,这样子查询从别处提取数据作为另一个查询的条件,这样子查询的作用就显示出来了
连接查询
比较常见的比如某工厂 生产X表 里面有 a 日期 b 订单 两字段 , 销售Y表 b 订单 d 购买客户 ,现在我们想看到某天是哪些客户买的东西 然后连接 x y表得到 a b d 这样 整个数据明细就出来了
以上只是各举一个用途吧,你说的消除重复值,也可以说是用途之一,呵呵