|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 判断一下执行那个不就好了
当然用联合也可以,速度差不多,数据库里也不会增加些垃圾代码
------解决方案--------------------写成存储过程中可以不?