求三表连接的sql语句
用户 user
id name
1 张三
2 李四
商品 Product
id name
1 商品1
2 商品2
订单 danding
【Product_id商品(外键连的Product id)gou_id 购买人(外键连得用户user id)shou_id 出售人(外键连得用户id)】
Product_idgou_id shou_id
1 1 2
2 1 2
-----效果-----
商品名 购买人的姓名 出售人的姓名
商品1 张三 李四
商品2 张三 李四
[解决办法]
select b.name as 商品名,c.name as 购买人姓名,d.name as 出售人姓名
from 订单 a
left join 商品 b
on a.product_id=b.id
left join 用户 c
on a.gou_id=c.id
left join 用户 d
on a.shou_id=d.id
[解决办法]
select
t2.name as 商品名
,t3.name as 购买人的姓名
,t4.name as 出售人的姓名
from t_dingdang t1
left join t_product t2 on t1.Product_id = t2.id
left join t_user t3 on t1.gou_id = t3.id
left join t_user t4 on t1.shou_id = t4.id
[解决办法]
;with [user](id,name) as
(
select 1,'张三'
union all select 2,'李四'
),
Product(id,name) as
(
select 1,'商品1'
union all select 2,'商品2'
),
danding(Product_id,gou_id,shou_id) as
(
select 1,1,2
union all select 2,1,2
)
select b.name as 商品名,c.name as 购买人的姓名,d.name as 出售人的姓名
from danding a
left join Product b on a.Product_id=b.id
left join [user] c on a.gou_id=c.id
left join [user] d on a.shou_id=d.id
/*
商品名购买人的姓名出售人的姓名
商品1张三李四
商品2张三李四
*/