图解SQL连接:内连接、左外连接、右外连接、全外连接

下文会用到两张表:客户表和订单表。如下图所示:

客户表
图解SQL连接:内连接、左外连接、右外连接、全外连接_第1张图片

订单表
图解SQL连接:内连接、左外连接、右外连接、全外连接_第2张图片

内连接(inner join)

满足条件的记录才会出现在结果集中

图解SQL连接:内连接、左外连接、右外连接、全外连接_第3张图片

隐式内连接:
select first_name, last_name, order_date, order_amount
from customers, orders 
where customers.customer_id = orders.customer_id

显示内连接:
select first_name, last_name, order_date, order_amount
from customers c
inner join orders o
on c.customer_id = o.customer_id

结果集:
图解SQL连接:内连接、左外连接、右外连接、全外连接_第4张图片

左外连接(left outer join,outer可省略)

左表全部出现在结果集中,若右表无对应记录,则相应字段为NULL

图解SQL连接:内连接、左外连接、右外连接、全外连接_第5张图片

select first_name, last_name, order_date, order_amount
from customers c
left join orders o
on c.customer_id = o.customer_id

结果集:
图解SQL连接:内连接、左外连接、右外连接、全外连接_第6张图片

右外连接(right outer join,outer可省略)

右表全部出现在结果集中,若左表无对应记录,则相应字段为NULL

图解SQL连接:内连接、左外连接、右外连接、全外连接_第7张图片

select first_name, last_name, order_date, order_amount
from customers c
right join orders o
on c.customer_id = o.customer_id

结果集:
图解SQL连接:内连接、左外连接、右外连接、全外连接_第8张图片

全外连接(full outer join,outer可省略)

全外连接=左外连接+右外连接

图解SQL连接:内连接、左外连接、右外连接、全外连接_第9张图片

select first_name, last_name, order_date, order_amount
from customers c
full join orders o
on c.customer_id = o.customer_id

结果集:
图解SQL连接:内连接、左外连接、右外连接、全外连接_第10张图片

你可能感兴趣的:(SQL)