一 连接查询
1.交叉连接:
语法:
from 表1 [cross] join 表2 ;
例如:
表一:
表2:
交叉:
交叉查询并没有意义。
2.内连接:
语法:
from 表1 [inner] join 表2 on 表1.字段1=表2.字段2;
想要内连接两个表,两个表必须有相对应的外键来连接。
例如:
当两个表内连接的时候,是在交叉连接的基础上,保留指定字符段相同的行,其余的行不保留,从而使无意义变为有意义。
3.左外连接:
形式:
from 表1 left [outer] join 表2 on 连接条件。
4.右外连接:
形式:
from 表1 right [outer] join 表2 on 连接条件。
连接查询就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”之后进行查询。
二 子查询
定义:
子查询就是把一个查询的结果当作另一个查询的条件。
in的基本语法形式为:
where 操作数 in (值1,值2, ....)
举例:
找出所有带“电”字的类别的产品
第一步:找出所有带“电”字的类别ID:
第二步:根据结果找出这些类别的产品:
select * from product where protype_id in (1, 3); ==〉
select * from product where protype_id in (
select protype_id from product_type where protype_name like '%电%'
);
三 联合查询
联合查询的关键字是: union
基本含义:
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
例如: