简单深入理解left join、right join、inner join之间的关系

前言:很多人干了几年的开发,一直认为自己对连接很是理解,也包括我自己。下面几个示例,将教会大家,既简单又能深入理解SQL连接之间的关系

1、SQL之LEFT JOIN

含义:顾名思义,左连接以左表为主的连接。其返回左表中的所有记录和右表中连接字段相等的记录

2、SQL之RIGHT JOIN

含义:顾名思义,右连接以右表为主的连接。其返回右表中的所有记录和左表中连接字段相等的记录

3、SQL之INNER JOIN

含义:顾名思义,左连接以左表为主的连接。其返回左表和右表关联字段相等的行

示例:

A表:

aid     name

1        张三

2        李四

3        王五

4        赵六

C表:

cid        age

1           18

2           20

3           22

5           21

LEFT JOIN:

select * from A a left join C c on a.aid = c.cid

结果:

aid                name                cid                age

1                   张三                   1                 18       

2                   李四                   2                  20

3                   王五                   3                  22

4                   赵六                   NULL           NULL

结论:查询左表所有数据,右表不符合以NULL值显示

RIGHT JOIN:

select * from A a right join C c on a.aid = c.cid

结果:

aid                name                cid                age

1                   张三                   1                 18       

2                   李四                   2                  20

3                   王五                   3                  22

NULL            NULL                 5                  21

结论:查询右表所有数据,左表不符合以NULL值显示

INNER JOIN:

select * from A a rigth join C c on a.aid = c.cid

结果:

aid                name                cid                age

1                   张三                   1                 18       

2                   李四                   2                  20

3                   王五                   3                  22

结论:只查询涉及到连表之间都符合的数据

你可能感兴趣的:(oracle,mysql,sql,数据库,database)