首先我这有两张表mysql
注意:顾客与订单之间是一对多关系sql
需求:查询哪一个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)
spa
sql语句:code
select c.customer_name, o.create_time, o.money from customer c, orders o where c.id = o.customer_id
sql语句也能够这样写:blog
select c.customer_name, o.create_time, o.money from customer c inner join orders o on c.id = o.customer_id
结果:class
内链接的过程:select
将符合条件的记录组合起来,放在一张新表里面sql语句
需求:查询哪一个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)im
sql语句:查询
select c.customer_name, o.create_time, o.money from customer c left join orders o on c.id = o.customer_id
结果:
从结果能够很清楚的明白左链接的含义:
将左边表的全部记录拿出来,无论右边表有没有对应的记录
需求:查询哪一个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)
sql语句:
select c.customer_name, o.create_time, o.money from customer c right join orders o on c.id = o.customer_id
结果:
、
从结果能够很清楚的明白右链接的含义:
将右边表的全部记录拿出来,无论右边表有没有对应的记录
这里要注意的是mysql自己并不支持全链接查询,可是咱们能够使用UNION关键字实现
sql语句:
select c.customer_name, o.create_time, o.money from customer c left join orders o on c.id = o.customer_id UNION select c.customer_name, o.create_time, o.money from customer c right join orders o on c.id = o.customer_id
结果:
从sql语句中能够清楚的看到:
使用UNION关键字将左链接和右链接,联合起来