Mysql 多表查询

一、定义:

  多表查询包括二张表以上的表的查询,其中有内连拉、左外、右外连接的查询

二、数据准备

CREATE TABLE emp(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20),
    salary DOUBLE(7,2),
    dep_id INT
);

INSERT INTO emp (name,salary,dep_id) VALUES ("张三",8000,2),
                                            ("李四",12000,1),
                                            ("王五",5000,2),
                                            ("赵六",8000,3),
                                            ("猪七",9000,1),
                                            ("周八",7000,4),
                                            ("蔡九",7000,2);

CREATE TABLE dep(
      id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(20)
);


INSERT INTO dep (name) VALUES ("教学部"),
                              ("销售部"),
                              ("人事部");

三、内连接

查询两张表中都有的关联数据,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。

SELECT FROM emp,dep WHERE emp.dep_id=dep.id; 或 SELECT FROM emp INNER JOIN dep ON emp.dep_id=dep.id;

四、左外连接

在内连接的基础上增加左边有右边没有的结果

SELECT FROM emp LEFT JOIN dep ON dep.id=emp.dep_id;

五、右外连接

在内连接的基础上增加右边有左边没有的结果

SELECT FROM emp RIGHT JOIN dep ON dep.id=emp.dep_id;

 

posted @ 2017-09-14 14:19  刘小伟  阅读(185)  评论(0编辑  收藏  举报