数据库多表联合查询
MySQL 子查询
子查询含义:一条select查询语句的结果作为另一条select语句的一部分
被嵌入的select结果 → 子查询 → (查询数据源 | 查询条件)
外部的select结果 → 主查询
- 查询结果
- 查询条件
子查询是可以独立存在的语句
子查询可以在一个表中运行
select * from category where cid in (select cid from product where price=(select max(price) from product));
MySQL 连接查询
连接查询是通过关联不同表中的数据获取更全面的信息
内连接:INNER JOIN
- A和B中同时满足连接条件的数据才会被展示出来
SELECT * FROM student INNER JOIN classes ON student.class_id = classes.id;
左连接:LEFT JOIN
- 返回左边表中的所有行及右边表中满足连接条件的数据
SELECT * FROM student LEFT JOIN classes ON student.class_id = classes.id;
右连接:RIGHT JOIN
- 返回右边表中的所有行及左边表中满足连接条件的数据
SELECT * FROM student RIGHT JOIN classes ON student.class_id = classes.id;
全连接:FULL JOIN
- 左右两边表所有的数据都会被展示(MySQL中使用左连接和右连接UNION合并实现全连接)
SELECT * FROM student LEFT JOIN classes ON student.class_id = classes.id UNION SELECT * FROM student RIGHT JOIN classes ON student.class_id = classes.id;
做题感悟
做题的时候报错,无法找到原因 — 细节上的语法
关于多表连接查询 左边和右边分别是谁