子查询和连表
来源:Node.js
子查询
子查询
子查询(Subquery),又称嵌套查询(Nested Query),指在一个查询语句中嵌套使用另一个完整的查询语句
子查询通常出现在主查询的WHERE子句、FROM子句、HAVING子句或SELECT子句中,可以被视为一个查询的结果集,作为外层查询的一部分,用于进一步筛选、计算或操作数据
1 | # 查询出yajue的用户id,再以用户id查询对应用户的照片 |
连表
连表查询可以将不同表的数据融合关联进同一个查询结果
MySQL具有三种连表形式:内连接、外连接、交叉连接
- 对于内连接的两个表,驱动表中的记录在被驱动表中找不到匹配的记录,该记录不会加入到最后的结果集
- 对于外连接的两个表,驱动表中的记录即使在被驱动表中没有匹配的记录,也仍然需要加入到结果集
- 交叉连接是指在两张或多张表之间没有任何连接条件的连接,可以用于查询所有可能的组合
内连接
1 | # user是驱动表、table是被驱动表 |
外连接
以驱动表为基准连接被驱动表,驱动表的数据会全部查出,被驱动表若没有值则补充null
左连接
1 | LEFT JOIN [连接的表] ON [连接的条件] |
1 | # user是驱动表、table是被驱动表 |
右连接
1 | RIGHT JOIN [连接的表] ON [连接的条件] |
1 | # table是驱动表、user是被驱动表 |
评论