如何在SQL中联接3个表
我有三张桌子: 表1如何在SQL中联接3个表,sql,count,sum,left-join,Sql,Count,Sum,Left Join,我有三张桌子: 表1 id | email ---+---------- 1 | a@a.com 2 | b@a.com 3 | c@a.com 4 | d@a.com 表2 order_id | email ---------+-------------- 1 | a@a.com 2 | a@a.com 3 | a@a.com 4 | c@a.
id | email
---+----------
1 | a@a.com
2 | b@a.com
3 | c@a.com
4 | d@a.com
表2
order_id | email
---------+--------------
1 | a@a.com
2 | a@a.com
3 | a@a.com
4 | c@a.com
5 | c@a.com
6 | b@a.com
7 | b@a.com
表3
order_id | sku | qty
---------+----------+-----
1 | sku1 | 1
2 | sku1 | 2
3 | sku1 | 1
4 | sku2 | 3
5 | sku2 | 2
6 | sku2 | 6
7 | sku3 | 5
我想把表1连接到表2和表3
获取表1和表3的所有行sku1+使用电子邮件按sku1计数数量+客户有“sku1”的计数订单
我想得到这样的结果:
id | email | sku | order | orderqty
---+----------+--------+----------+--------------
1 | a@a.com | sku1 | 3 | 4
2 | b@a.com | sku1 | 3 | 5
3 | c@a.com | sku1 | 1 | 6
4 | d@a.com | sku1 | null | null
有人能帮我吗?谢谢大家我想你需要
左加入s和聚合:
select t1.id, t1.email, 'sku1' sku, count(distinct t2.order_id) cnt_order, sum(t3.qty) orderqty
from table1 t1
left join table2 t2 on t2.email = t1.email
left join table3 t3 on t3.order_id = t2.order_id and t3.sku = 'sku1'
group by t1.id, t1.email
为什么要将sku1用于id=4、电子邮件=d@a.com?我需要用order=0和orderqty=0显示这一行非常感谢,愉快的编码,这对我来说很有用