连接查询
连接查询包括下面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查询的简单总结。