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

|M| 求SQL查询语句:选择性的对表进行查询 多谢

2012-03-22 
|M| 求SQL查询语句:选择性的对表进行查询谢谢急订单表orderiduidmidtotil101100022020003103000管理员表Ma

|M| 求SQL查询语句:选择性的对表进行查询 谢谢 急
订单表   order  
id       uid     mid     totil
1             0         1       1000
2             2         0       2000
3             1         0       3000
管理员表   Manager
id     name
1       小红
用户表
id     name
1       小张
2       小王

查询出来要求是:当uid为0时就先用mid查询反则用uid查询
查询出来为
id     name   totil
1       小红   1000
2       小王   2000
3       小张   3000

谢谢很急
以上结账

[解决办法]
写两个函数,分别查询返回一个name
当uid为0时调用一个函数
else 调另一个
[解决办法]
select order.id,order.uid,order.mid,order.totil,Manager.name
Where order.mid=Manager.id and order.uid=0
union all
select order.id,order.uid,order.mid,order.totil,user.name
Where order.uid=user.id and order.uid <> 0

[解决办法]

select a1.id b1.name, a1.totil from order a1 ,Manager b1
where a1.mid = b1.id and a1.uid =0
union
select a2.id b2.name, a2.totil from order a ,用户表 b2
where a2.uid = b2.id and a2.uid <> 0
[解决办法]
是一次返回啊本来就是一条语句用case 判断一下执行那个不就好了
当然用联合也可以,速度差不多,数据库里也不会增加些垃圾代码
[解决办法]
写成存储过程中可以不?

热点排行