zoukankan      html  css  js  c++  java
  • 数据库之子查询二(相关子查询)

    四、相关子查询(exists,not exists)
        通过子查询的反复执行逐一查询每一行,从而确定内容是否满足条件(返回值为true或者false),从而决定是否显示外查询内容(可以是同一数据表或者不同数据表)
        和连接查询功能基本一样,但是实现方式不一样,连接查询适合查询循环次数过多的时候
        个人觉得连接查询比较好用
        格式: select 表1.字段1.......
                    from 表1
                    where exists
                    (
                    select *
                    from 表2
                    where
                    表1.字段1=表2.字段1
                    and.........    
                    )
        
    举例:
    1.相关子查询
    select s.stuID,s.stuName,s.age,s.sex,s.birth
    from tstudent s
    where exists
    (
    select *
    from tresult t
    where s.stuID=t.StuID
    and t.curID='t105'
    )
    2.内连接查询:
    select s.stuID,s.stuName,s.age,s.sex,s.birth
    from tstudent s,tresult t
    where s.stuID=t.stuID
    and t.curID='t105'
    3.using优化内连接查询
    select s.stuID,s.stuName,s.age,s.sex,s.birth
    from tstudent s join tresult t
    using (`stuID`)
    where t.curID='t105'
    4.on形式内连接查询
    select s.stuID,s.stuName,s.age,s.sex,s.birth
    from tstudent s join tresult t
    on s.stuID=t.stuID
    where t.curID='t105'
    以上四种结果相同
    5.not exists返回为无结果时为true,显示结果
    例子:
    select s.stuID,s.stuName,s.age,s.sex,s.birth
    from tstudent s
    where not exists
    (
    select *
    from tresult t
    where s.stuID=t.StuID
    and t.curID='t105'
    )
  • 相关阅读:
    .NET 环境中使用RabbitMQ
    WPF窗口模板——Style样式
    C#获取当前日期时间
    C#解析JSON字符串总结
    c#简单加密和对称加密
    List<T>转换为二维数组
    java后台导出pdf
    C# 创建 读取 更新 XML文件
    python 第三天
    编写登录接口
  • 原文地址:https://www.cnblogs.com/SoulReaper/p/3309794.html
Copyright © 2011-2022 走看看