为了账号安全,请及时绑定邮箱和手机立即绑定

这个sql语句要咋写

这个sql语句要咋写

繁花如伊 2018-12-07 09:49:12
 select distinct o.type,t1.name,t2.name from order o with(nolock)        left join   table1  t1 on t1.orderid=o.id        left join   table2  t2 on t2.orderid=o.id   我想实现,如果o.type等1就left  join  table1,否则的话就left join table2 用一个sql语句要咋写啊?
查看完整描述

8 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

存储过程

查看完整回答
反对 回复 2019-01-07
?
呼如林

TA贡献1798条经验 获得超3个赞

谢谢你的回答!真实的情况是数据量比较大呢,问题里面我描述的比较简单。。数据量大的话,用哪个比较好哇?

查看完整回答
反对 回复 2019-01-07
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

@橙色の橙子: 数据大,推荐用连接(带join这种)...你可以实现我发的那条语句,呵呵~

查看完整回答
反对 回复 2019-01-07
?
Helenr

TA贡献1780条经验 获得超4个赞

@幻天芒: 我是想用你这个语句。

可是我只想输出TransactionID,PrepayType,PaymentCatalog这要怎么写呢

select distinct t1.TransactionID,t1.PrepayType,t1.PaymentCatalog,
t2.ExternalNo as TransactionID,t2.PaymentWay as PrepayType,t2.PaymentCatalog
from order o with(nolock)
left join   table1  t1 on t1.orderid=o.id and o.type=1
left join   table2  t2 on t2.orderid=o.id and o.type<>1

我这样写输出的是6列,是不是只有union才能输出3列啊?

查看完整回答
反对 回复 2019-01-07
?
万千封印

TA贡献1891条经验 获得超3个赞

@橙色の橙子: 如果你只要3列的话,你最好采用1楼的方式~

查看完整回答
反对 回复 2019-01-07
?
九州编程

TA贡献1785条经验 获得超4个赞

@幻天芒: 好的,非常感谢!!

查看完整回答
反对 回复 2019-01-07
  • 8 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信