Mysql 多表查询

Posted 刘小伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于Mysql 多表查询的主要内容,如果未能解决你的问题,请参考以下文章

Mysql多表查询

Mysql笛卡尔积详解(附实现多表查询代码实现)

Hibernate的HQL多表查询

MySQL多表查询

mysql 多表联合查询语句怎么写

mybatis-基于xml的多表查询