暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的SQL语句 - 数据操作语句(13)- 子查询(3)

数据库杂货铺 2021-04-12
188
使用子查询进行比较
 
子查询最常用的形式是:
 
    non_subquery_operand comparison_operator (subquery)
     
    其中 comparison_operator 是以下运算符之一:
     
      =  >  <  >=  <=  <>  !=  <=>
       
      例如:
       
        ... WHERE 'a' = (SELECT column1 FROM t1)
         
        MySQL 也允许这种结构:
         
          non_subquery_operand LIKE (subquery)
           
          曾经子查询的唯一合法位置是在比较符的右侧,可能有一些老的 DBMS 仍然在坚持这一点。
           
          下面是一个子查询比较的常见形式,使用联接无法做到这一点。它查找表 t1 中 column1 值等于表 t2 中最大值的所有行:
           
            SELECT * FROM t1
            WHERE column1 = (SELECT MAX(column2) FROM t2);
             
            这是另一个例子,对于使用联接来说这又是不可能的,因为它涉及到对其中一个表的聚合。它查找表 t1 中包含在给定列中出现两次的值的所有行:
             
              SELECT * FROM t1 AS t
              WHERE 2 = (SELECT COUNT(*) FROM t1 WHERE t1.id = t.id);
               
              要将子查询与标量进行比较,子查询必须返回标量。要将子查询与行构造函数进行比较,子查询必须是返回值数量与行构造函数相同的行子查询。
               
               
               
               
               
              官方网址:
              https://dev.mysql.com/doc/refman/8.0/en/comparisons-using-subqueries.html

              文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论