连接查询与union查询

连接查询

连接查询包括下面3中查询方式:

  • inner join(内连接查询):

对于 A表和B表来说,要想查询两张表相同的数据,可以通过    select 字段1,字段2,... from A inner join B on where A.字段=B.字段

  • left join (左连接查询):

对于A表和B表来说,如果要进行左连接查询,数据库就会以左表为基准,从右表中找出与左表相匹配的数据,找不到就用NULL补齐,SQL可以这样写:select 字段1,字段2,... from A left join B on where A.字段=B.字段

  • right join(右连接查询)

对于A表和B表来说,如果要进行右连接查询,数据库就会以右表为基准,从左表中找出与右表相匹配的数据,找不到就用NULL补齐,SQL可以这样写: select 字段1,字段2... from A right join B on where A.字段=B.字段

注意以上连接查询,会把多张表连接成一张表,以上的select语句就像从普通的表中进行数据的查询。

union联合查询

对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果表,这就要求我们做到以下几点:

  • 对于联合查询的多张表的列数必须保持一致
  • 推荐:对于每一列的字段类型也要保持一致
  • 对于多个select语句的查询,列名可能不同,要以第一个select语句的列名为准
  • 如果多个select语句查询到相同的记录,就会把重复的记录合并为一条记录
  • 如果不想将相同的查询结果去重,直接在union后加all,当然,这种效率会高一点

SQL语法:

select * from A

union

select * from B

union

.....

以上是自己对连接查询和union查询的简单总结。

你可能感兴趣的:(MySql)