MySQL连接查询、子查询与联合查询

 一 连接查询

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语句的查询结果“层叠”到一起成为一个“大结果”。

  两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。

例如:

猜你喜欢

转载自www.cnblogs.com/jiejava/p/13182641.html