mysql系列(十二)SQL语句之子查询

1.利用子查询进行过滤

子查询:嵌套在其他查询中的查询
SELECT column1_name FROM table1 WHERE column2_name IN (
                                                        SELECT column2_name FROM table2 WHERE column2_name > 1
                                    );

子查询是把一条SQL语句的结果用于另一条SQL语句的条件

在SELECT语句中,子查询总是从内往外处理

  • 列必须匹配
    在WHERE子句中使用子查询,必须保证SELECT语句与WHERE子句中具有相同数目的列
  • 一般子查询返回单个列,但是如果需要也可以返回多个列
  • 子查询一般与IN一起使用,但是也可以使用=、<>等

2.作为计算字段使用子查询

SELECT column1_name,(SELECT COUNT(column2_name) AS C FROM table2 WHERE table2.column3_name = table1.column1_name) FROM table1;
相关子查询:涉及外部查询的子查询

任何时候只要列名具有多义性,就必须使用这种语法(表名和列名用一个句点分隔)

你可能感兴趣的:(mysql,mysql极简入门教程)