连接查询

  在做项目时用到了大量的查询,且绝大多数是多表连接查询,取一个数据不仅要找出它所在的表、列,还要找到与之关联的其他表,现将内查询、外查询的相关用法总结如下:

一、语法

①、内连接

SELECT 列名.*(可以有多个) 
FROM 表1 JOIN 表2 ON 表1.列1=表2.列1

  这是我用的最多的一种,内连接实质是通过各个表之间的共同列关联来查询数据

②、左外连接

SELECT 列名.*(可以有多个) 
FROM 表1 LEFT JOIN 表2 ON 表1.列1=表2.列1

  左外连接是指保留连接表达式中的左表(表1)的非匹配记录和右表中的符合条件部分

③、右外连接

SELECT 列名.*(可以有多个) 
FROM 表1 RIGHT JOIN 表2 ON 表1.列1=表2.列1

  右外连接是指保留连接表达式中的右表(表2)的非匹配记录和左表中的符合条件部分

 

二、举个小栗子加深理解

  我这里准备了两个表,并随意插入了一些数据

表1

        表2

①内连接查询示例,语句如下

SELECT * FROM  表1 JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

查询结果

②左外连接查询示例,语句如下

SELECT * FROM  表1  LEFT JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

查询结果

 

可以看到,左表中不符合条件的数据也保留了下来

③右外连接查询示例,语句如下

SELECT * FROM  表1  RIGHT JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

查询结果

可以看到,这里右外查询的结果竟然和内查询是一样的,原因是两个表中都有1和2这两个evaluate_id,右外查询保留右表的非匹配记录,只保留左表的匹配条件的记录,而右表的记录中没有不匹配的,所以查询结果和内查询一样啦

 

posted @ 2019-03-26 16:32  gisliuliang  阅读(329)  评论(0编辑  收藏  举报