首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

求3表连接的sql语句

2013-10-19 
求三表连接的sql语句用户useridname1张三2李四商品Productidname1商品12商品2订单danding【Product_id商品(

求三表连接的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张三李四
*/

热点排行