
# 连接查询
连接查询也可称为跨表查询，需要关联多个表进行查询。
```
-- 建表并插入数据。
m_db=# CREATE TABLE emp(
    id int,             --员工编号
    name varchar(20),   --员工姓名 
    deptno int          --所属部门编号
);
m_db=# CREATE TABLE dept(
    deptno int,         --部门编号
    depname varchar(20) --部门名
);
m_db=# INSERT INTO emp VALUES (1, 'Joe', 10), (2, 'Scott', 20), (3, 'Ben', 999);   --Ben还没有确认是哪一个部门所以部门编号是999
m_db=# INSERT INTO dept VALUES (10, 'hr'), (20, 'it'), (30, 'sal');                --sal部门没有员工
```
- 内连接（INNER JOIN）
  ```
  m_db=# SELECT t1.id,t1.name,t2.depname FROM emp t1 JOIN dept t2 ON t1.deptno = t2.deptno;
   id | name  | depname 
  ----+-------+---------
    1 | Joe   | hr
    2 | Scott | it
  (2 rows)
  ```
  
- 左连接（LEFT JOIN）
  ```
  m_db=# SELECT t1.id,t1.name,t2.depname FROM emp t1 LEFT JOIN dept t2 ON t1.deptno = t2.deptno;
   id | name  | depname 
  ----+-------+---------
    1 | Joe   | hr
    2 | Scott | it
    3 | Ben   | 
  (3 rows)
  ```
  
- 右连接（RIGHT JOIN）
  ```
  m_db=# SELECT t1.id,t1.name,t2.depname FROM emp t1 RIGHT JOIN dept t2 ON t1.deptno = t2.deptno;
   id | name  | depname 
  ----+-------+---------
    1 | Joe   | hr
    2 | Scott | it
      |       | sal
  (3 rows)
  ```
  
 
