精华内容
下载资源
问答
  • SQL嵌套查询

    2012-05-14 20:51:01
    SQL嵌套查询
  • sql嵌套查询

    千次阅读 2017-03-27 09:06:39
    1、sql嵌套查询:一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理...

    1、sql嵌套查询:一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

    2、子查询到组成:

    a、包含标准选择列表组件的标准select查询。

       b、包含一个或多个表或者视图名称的标准from子句。

       c、可选的where子句。

       d、可选的group by子句。

       e、可选的having子句。

    3、子查询语法规则

      a、子查询的select查询总是使用圆括号括起来。

      b、不能包括compute或for.browse子句。

      c、如果同时指定top子句,则可能只包括order by子句。

      d、子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。

      e、任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。

      f、如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。

    4、简单子查询实例

    select name,age from person 
    where age > 
    (
        select age from person 
        where name = '孙权'
    )
    5、in嵌套查询
     in关键字用于where子句中用来判断查询的表达式是否在多个值的列表中。返回满足in列表中的满足条件的记录。
    
    select name from person 
    where countryid in 
    (
        select countryid from country
        where countryname = '魏国'
    )
    6、all嵌套查询
     all是sql中的逻辑运算符好,如果一系列的比较都为true,那么结果才能为true。
    
    select name from person 
    where countryid > all   --当countryid大于以下返回的所有id,此结果才为True,此结果才返回
    (
        select countryid from country
        where countryname = '魏国'
    )
    7、some嵌套查询
    some在sql中的逻辑运算符号,如果在一系列比较中,有些值为True,那么结果就为True。some的语法是:
    
    select name from person 
    where countryid = some       --用等号和以下查询到的值比较,如果与其中一个相等,就返回
    (
        select countryid from country
        where countryname = '魏国'
    )
    8、exists嵌套查询
    exists是sql中的逻辑运算符号。如果子查询有结果集返回,那么就为True。exists代表“存在”的意义,它只查找满足条件的那些记录。一旦找到第一个匹配的记录后,就马上停止查找。
    
    其中子查询是一个首先的select语句,不允许有compute子句和into关键字。
    
    SELECT * FROM Person
    WHERE exists
    (
        SELECT 1      --SELECT 0  SELECT NULL 返回结果都一样,因为这三个子查询都有结果集返回,因此总是True  SELECT * FROM Person照常执行
    )
    但是如果子查询中因为加了条件而没有结果集返回,则主语句就不执行了:
    SELECT * FROM Person
    WHERE exists
    (
        SELECT * FROM Person 
        WHERE Person_Id = 100    --如果不存在Person_Id的记录,则子查询没有结果集返回,主语句不执行
    )



    展开全文
  • SQL嵌套查询总结

    2020-09-14 14:27:09
    是我写的一个结合UINON的嵌套查询. 将五个方面的报表放到一个临时表里,再从临时表里,将所要的数据查询出来.
  • 第7讲 sql嵌套查询;教学任务发布;7.4 在Having子句中使用子查询;7.5 在Select子名中使用子查询;7.6 子查询的另外一种分类;7.6 子查询的另外一种分类;7.6 子查询的另外一种分类;拓展补充;拓展补充;拓展补充;拓展补充;...
  • SQL嵌套查询和链接查询

    千次阅读 2010-06-07 10:49:00
    SQL嵌套查询和链接查询

    SQL嵌套查询和链接查询
    我们经常会做一些SQl嵌套和链接查询,有时候用他们2个都可以实现我们的需求,那么我们应该如何去选择了?
    来看看2个Sql语句
    SELECT  a.*
    FROM    Products a
    WHERE   a.CategoryID IN ( SELECT    CategoryID
                              FROM      dbo.Categories )

    SELECT  a.*
    FROM    Products a
            INNER JOIN Categories b ON a.CategoryID = b.CategoryID

     

     


    结果显示在有聚集索引的情况下采用嵌套查询性能更高。其他情况大家自己研究哦
    呵呵。

    展开全文
  • sql嵌套查询练习题

    2012-11-23 23:58:25
    sql 语句的嵌套查询完整题,只要能全部做完,那查询的问题就不大了
  • MySQL、Spark SQL 嵌套查询(二层、三层、多层)

    MySQL、Spark SQL 嵌套查询(二层、三层、多层)

    二层查询

    select * from(select * from(select substring(``,1,3) from `big1`)t1 join
            (select substring(``,1,3) from `big2`)t2 on 1=1)tt 
            where tt.aa>3
    

    三层查询

    select * from(select * from(select substring(``,1,3) from `big1`)t1 join
            (select * from (select substring(``,1,3) from `big2`)t2 join 
            (select substring(``,1,3) from `big3`)t3 on 1=1
            )t4 on 1=1)tt 
            where tt.aa>3
    
    展开全文
  • sql嵌套查询优化

    千次阅读 2018-01-04 23:36:44
    1.嵌套查询优化 优化前 SELECT q.id, q.title, q.question, q.person_name, q.department_name, r.response, r.create_time response_time FROM tb_ent_question q LEFT JOIN tb_ent_res

    1.嵌套查询优化
    优化前
    这里写图片描述

    SELECT
        q.id,
        q.title,
        q.question,
        q.person_name,
        q.department_name,
        r.response,
        r.create_time response_time
    FROM
        tb_ent_question q
    LEFT JOIN tb_ent_response r ON q.id = r.question_id
    WHERE
     r.create_time = (
        SELECT
            MAX(create_time)
        FROM
            tb_ent_response r1
        WHERE
            r1.question_id = q.id
    )
    OR r.create_time IS NULL
    ORDER BY
        q.create_time DESC

    优化后
    这里写图片描述

    SELECT
        q.id,
        q.title,
        q.question,
        q.person_name,
        q.department_name,
        r.response,
        r.create_time response_time
    FROM
        tb_ent_question q
    LEFT JOIN tb_ent_response r ON q.id = r.question_id,
     (
        SELECT
            r1.id,
            r1.question_id,
            max(r1.create_time) AS create_time
        FROM
            tb_ent_response r1
        GROUP BY
            id
    ) a
    WHERE
    (
        a.id = r.id
        OR (r.create_time IS NULL)
    )
    GROUP BY
        q.id
    ORDER BY
        q.create_time DESC
    
    展开全文
  • Oracle 11g——SQL 嵌套查询

    千次阅读 2017-08-21 16:20:33
    前言在前面2个章节,我们比较详细的介绍了一些SQL语句的基本用法,但是在我们实际的项目开发中,其实很多时候这些基本的用法远远不能满足我们项目的需求,这个时候就需要我们的嵌套查询。在SQL语句中,一个select-...
  • sql语句会用到许多查询语句,如果牵扯到多... 嵌套查询:   select * from bi_BillItem where BillID in (select BillID from bi_Bill where IsArchived='0' and IsCheckOuting='2') group by menuId,MenuPri...
  • SQL 嵌套查询问题

    千次阅读 2013-03-20 21:44:48
    这个是嵌套查询的语句。 先执行的是外部查询的语句 。   比如说有三条信息.用上面写的语句在SQL分析器中执行         分析下这样的查询  先查找的是 日期 , 日期最大是下面两条语句 。...
  • 在做嵌套查询时,如果嵌套的条件在另一张表中没有数据,则会报错。这时候可以用:
  • String sql = "select * from msgInfo where ID in(select top 15 ID from msgInfo where chatRoom=? Order by chatTime DESC) order by chatTime"; String userName=session.getAttribute("_USER").toString(); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 147,326
精华内容 58,930
关键字:

sql嵌套查询