如何能让这条SQL语句改成标准的SQL语句,即将(+)去掉

coolant_lai 2003-08-21 10:25:52
如何改写一条标准的SQL语句,将sms_business_area.id(+) ,sms_user.id(+) 这二个条件的(+)号去掉。
SELECT sms_business_area.description, sms_user.full_name, sms_sub.full_name,
sms_stb_type.vendor, sms_sales_header.business_date,
sms_sales_header.actual_amount
FROM sms_sub_stb_type,
sms_sub,
sms_sales_header,
sms_stb_type,
sms_user,
sms_business_area
WHERE ( (sms_sub.id = sms_sub_stb_type.sub_id)
AND (sms_sub.id = sms_sales_header.sub_id)
AND (sms_stb_type.id = sms_sub_stb_type.stb_type_id)
AND (sms_business_area.id(+) = sms_user.business_area_id)
AND (sms_user.id(+) = sms_sub.staff_id)
)
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
(+)可以改为left join 和 right join
但(+)更便捷
BenZ004 2003-09-04
  • 打赏
  • 举报
回复
不同的数据库语法会有一些区别
如果你是ORACLE的话:select a_name, b_name, c_name
from c Left join b left join a on a.aid = b.aid on b.bid = c.bid

这样就可以的了
llm06 2003-09-03
  • 打赏
  • 举报
回复
left join 和 right join

不同的数据库,使用不同的sql语句,这也不是什么问题
Drate 2003-09-03
  • 打赏
  • 举报
回复
呵呵,有的时候语法是ORACLE的,但如果需要应用到其它的开发环境中,如:SQL SERVER,所以就需要标准的SQL 语法了
beckhambobo 2003-08-21
  • 打赏
  • 举报
回复
select a_name, b_name, c_name
from c Left join b left join a on a.aid = b.aid on b.bid = c.bid

或:
select a_name, b_name, c_name
from a right join b right join c on b.bid=c.bid on a.bid=b.bid
coolant_lai 2003-08-21
  • 打赏
  • 举报
回复
我将问题简化一下,大家帮助解决一下啊。
A表
AID
A_NAME
B表
BID
AID
B_NAME
C表
CID
BID
C_NAME
A.AID与B.AID是一对多关系(A.AID可能为空)
B.BID与C.BID是一对多关系
定一SQL语句,取出的字段为A_NAME,B_NAME,C_NAME
select A_NAME,B_NAME,C_NAME
from A,B,C
WHERE A.AID(+) = B.AID
AND B.BID(+) = C.BID
我想将这sql语句写成不只在oracle下才能执行的标准语句。
beckhambobo 2003-08-21
  • 打赏
  • 举报
回复
9i以上版本支持的,为何要寻求标准语句上,厂家不同,语法上当然是有区别的
coolant_lai 2003-08-21
  • 打赏
  • 举报
回复
我要在oracle下运行的

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧