连接查询
所谓连接查询就是指两个或两个以上的表连接成为一个表进行查询。实际上,两个表的完全连接是指:A表的每一行和B表每一行,两两"横向对接"后所得到的一个表。连接之后并非形成来一个新的表,只是一种内存形态。
连接语法的基本形式
from 表1[链接方式] join 表2 [on 连接条件];
连接的结果可以当做一个"表"来使用。常用的有交叉链接、内连接、左连接、右链接,今天先介绍交叉连接与内连接。
交叉链接
实际上,交叉链接就是将两个表不设定任何条件的连接结果。交叉链接通常也被叫做"笛卡尔积",数学上较常用。上图就是一个简单的交叉链接
from 表1 [cross] join 表2;//去掉on就是交叉链接了,cross不仅可以省略,还可以用inner这个词替代
内连接
内连接的作用是过滤交叉连接的结果表中的表1的字段1值等于表2的字段2值的那些行。
from 表1 [inner] join 表2 on 表1.字段名1=表2.字段名2;
由于交叉连接中表1和表2和成的"新表"中可能会产生一些无意义的数据,故引入内连接,如下图。
通过内连接查询筛除无用数据,结果如下图
//查询示例
select * from product as t1 join product_type as t2 on t1 protype_id = t2.protype_id