求大神帮忙分析一个SQL,不是很复杂,但是做起来真的很难!!!

莫欺少年穷 2012-06-01 07:24:05
(重要的我用红色标出)
MSP表,其中字段及释义:
MSP_ID:主键ID
CARRIER_ID:区域ID,每一个区域都有一个ID和上级ID,其中山西是顶级,上级ID为0。要求里面不需要管这个区域的信息,只需要知道,某区域可以是省/市/县!
COMPANY_ID:公司ID
BUSINESS_ID:业务ID

关系:
区域就是省市县三级关联就不多说了。
其中公司与业务关系是多对一


要求:查询MSP这个表,如果(A公司代维某区域某业务),判断,这个关系中是否存在(A——山西——某业务),有的话就结束,没有的话就insert一个(A——山西——某业务)


求大神分析!先谢谢前来帮忙的各位了!!分析一下也是对各位SQL的整理技术的提高哦!!!


我举个例子,比如A公司代维太原区域基站业务,如果MSP表中记录存在A公司代维山西区域基站业务,那么就没事了,如果不存在就插入这条数据!


...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫欺少年穷 2012-06-06
  • 打赏
  • 举报
回复
真的没人来看吗??那么我想公布答案了………………


SELECT T1.COMPANY_ID FROM
(SELECT DISTINCT COMPANY_ID,MAINTAIN_BUSINESS,SPECIALTYCODE,COMPANY_NAME,MAINTAIN_BUSINESS_NAME
FROM MSP WHERE MAINTAIN_BUSINESS IS NOT NULL
ORDER BY COMPANY_ID)T1
LEFT JOIN
(SELECT COMPANY_ID ,MSP_ID ,MAINTAIN_BUSINESS FROM MSP
WHERE CARRIER_ID = '100000')T2
ON T1.COMPANY_ID = T2.COMPANY_ID AND T1.MAINTAIN_BUSINESS=T2.MAINTAIN_BUSINESS
WHERE MSP_ID IS NULL
莫欺少年穷 2012-06-05
  • 打赏
  • 举报
回复
再顶下——————实在没人回复就公布下我项目经理的做法————————————————很威武!
莫欺少年穷 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
光这一张表没法做吧,至少还需要加一列“上级区域ID”或另外建一张表包含“区域ID”和“上级区域ID”两个字段。这样的话就是典型的“层次表”,或叫“目录树表”。这种表的相关算法几年前已经有大牛写出来了,就在csdn论坛里。google一下也能找出N多转帖。
[/Quote]


可以做的!你说的这个完全冗余没必要——————我对SQL不是很好的,让我看的话——呃,头大不说,数不清理还乱————————————————————

公司里老大整理出来了,赶紧很威武!对于新手来说,这个SQL的整理是个很好的提高——————也算是分享给大家的吧!大家有空就认真下来整理下,这点时间,绝对是值得的!我直接公布SQL反而影响了你们认真的分析一下————————————————
zz_yi 2012-06-02
  • 打赏
  • 举报
回复
先SELECT
再IF
判断是否存在
不存在
INSERT
一个表一个表地INSERT
注意不违背表之间的逻辑关系就OK了
莫欺少年穷 2012-06-02
  • 打赏
  • 举报
回复
自己顶一个————————很失望!没人来帮我————————————
SIMENYU 2012-06-02
  • 打赏
  • 举报
回复
光这一张表没法做吧,至少还需要加一列“上级区域ID”或另外建一张表包含“区域ID”和“上级区域ID”两个字段。这样的话就是典型的“层次表”,或叫“目录树表”。这种表的相关算法几年前已经有大牛写出来了,就在csdn论坛里。google一下也能找出N多转帖。
huangdh12 2012-06-02
  • 打赏
  • 举报
回复
merge也是可以的。 只是在找到的时候不进行操作。
coolkisses 2012-06-02
  • 打赏
  • 举报
回复
用的着这么麻烦吗?

直接生成最新的全部数据,然后有2种做法
1) 清空原MSP,全量插入新数据
2) 插入时,加过滤条件,如 not in (判断条件)

17,086

社区成员

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

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