1. 先确定数据要用到哪些表。
  2. 将多个表先通过笛卡尔积变成一个表。
  3. 然后去除不符合逻辑的数据(根据两个表的关系去掉)。
  4. 最后当做是一个虚拟表一样来加上条件即可。

注意:列名最好使用表别名来区别。

笛卡尔积

MySQL的多表查询(笛卡尔积原理)教程

Demo:

MySQL的多表查询(笛卡尔积原理)教程


左,右连接,内,外连接

l 内连接:

要点:返回的是所有匹配的记录。

  1. 2. select * from a,b where a.x = b.x ////内连接

l 外连接有左连接和右连接两种。

要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。

  1. select * from a left join b on a.x=b.x order by a.x //左外连接或称左连接
  2. select * from a right join b on a.x=b.x order by a.x //右外连接或称右连接

select子句顺序

子句

说明

是否必须使用

select

要返回的列或表示式

form

从中检索数据的表

仅在从表选择数据时使用

where

行级过滤

group by

分组说明

仅在按组计算聚集时使用

having

组级过滤

order by

输出排序顺序

limit

要检索的行数

标签: 连接, MySQL, null, select, order, 多表, 子句, 笛卡尔

相关文章推荐

添加新评论,含*的栏目为必填