ORACLE 数据库的 TABLE1 和 TABLE2 两表关联合并查询结果得到最下面的结果?(附图片)
TABLE1GBNAMEXNAMEBOXDEV_ID1母鸡村公变1#线K22080404956837002母鸡村公变1#线K12080404956843003母鸡村公变1...
TABLE1
GBNAME XNAME BOX DEV_ID
1 母鸡村公变 1#线 K2 208040495683700
2 母鸡村公变 1#线 K1 208040495684300
3 母鸡村公变 1#线 K3 208040495685500
4 母鸡村公变 1#线 K2 208040495686900
TABLE2
KEHU_NAME KEHU_CODE ZICAN_NO BXCODE
1 陆新 210843430 21-22013538-1 K1
2 陆成 210843431 21-22013539-1 K2
3 陆作联 210843439 21-22013547-1 K2
4 陆洪 210843435 21-22013543-1 K3
GBNAME XNAME BOX DEV_ID KEHU_NAME KEHU_CODE ZICAN_NO BXCODE
1 母鸡村公变 1#线 K2 208040495683700 陆作联 210843439 21-22013547-1 K2
2 母鸡村公变 1#线 K1 208040495684300 陆新 210843430 21-22013538-1 K1
3 母鸡村公变 1#线 K3 208040495685500 陆洪 210843435 21-22013543-1 K3
4 母鸡村公变 1#线
K2 208040495686900 陆成 210843431 21-22013539-1 K2
黄色部分不能重复
大神们,急求啊,加班中……在线等
BOX与BXCODE相连,但DEV_ID不能重复 展开
GBNAME XNAME BOX DEV_ID
1 母鸡村公变 1#线 K2 208040495683700
2 母鸡村公变 1#线 K1 208040495684300
3 母鸡村公变 1#线 K3 208040495685500
4 母鸡村公变 1#线 K2 208040495686900
TABLE2
KEHU_NAME KEHU_CODE ZICAN_NO BXCODE
1 陆新 210843430 21-22013538-1 K1
2 陆成 210843431 21-22013539-1 K2
3 陆作联 210843439 21-22013547-1 K2
4 陆洪 210843435 21-22013543-1 K3
GBNAME XNAME BOX DEV_ID KEHU_NAME KEHU_CODE ZICAN_NO BXCODE
1 母鸡村公变 1#线 K2 208040495683700 陆作联 210843439 21-22013547-1 K2
2 母鸡村公变 1#线 K1 208040495684300 陆新 210843430 21-22013538-1 K1
3 母鸡村公变 1#线 K3 208040495685500 陆洪 210843435 21-22013543-1 K3
4 母鸡村公变 1#线
K2 208040495686900 陆成 210843431 21-22013539-1 K2
黄色部分不能重复
大神们,急求啊,加班中……在线等
BOX与BXCODE相连,但DEV_ID不能重复 展开
展开全部
感觉上二者的关系应该是1对1的,就是说在table1中的数据条数和table2中的数据条数应该是相等的。也就是说上面每个box下有几个值那么下面的table2中每个bxcode下面就有几个值.
如果我的猜测正确,那么就先编号,然后再关联。
select t1.gbname,t1.xname,t1.box,t1.dev_id,t2.kehu_name,t2.kehu_code,t2.zican_no,t2.bxcode from
(select gbname,xname,box,dev_id,rank()over(group by box) box_id from table1) t1,(select kehu_name,kehu_code,zican_no,bxcode,rank()over(group by bxcode) bxcode_id from table2) t2
where t1.box=t2.bxcode and t1.box_id=t2.bxcode_id
不过感觉上这表确实有点问题,dev_id是怎么对应的,这样做的话,对应错的的概率很大。你这里两个k2,那么哪个人对应哪个设备号,应该是明确的,而现在好象不是很明确。
如果我的猜测正确,那么就先编号,然后再关联。
select t1.gbname,t1.xname,t1.box,t1.dev_id,t2.kehu_name,t2.kehu_code,t2.zican_no,t2.bxcode from
(select gbname,xname,box,dev_id,rank()over(group by box) box_id from table1) t1,(select kehu_name,kehu_code,zican_no,bxcode,rank()over(group by bxcode) bxcode_id from table2) t2
where t1.box=t2.bxcode and t1.box_id=t2.bxcode_id
不过感觉上这表确实有点问题,dev_id是怎么对应的,这样做的话,对应错的的概率很大。你这里两个k2,那么哪个人对应哪个设备号,应该是明确的,而现在好象不是很明确。
追问
辛苦了,但好像不行。
展开全部
你这表设计的就有问题,或者数据有问题,或者缺少关键列。两条记录都是K2,凭什么t1的第一条记录跟t2的第三条记录对应,t1的第四条记录跟t2的第二条记录对应?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看懂,表1和表2的关联条件是啥子?
追问
BOX与BXCODE相连,但DEV_ID不能重复
追答
但是各有两个k2啊,直接关联会出现四条记录,排重的规则是啥?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
联合的条件是什么?BOX与BXCODE联合的话 想k2有两个 那么为什么结果中的第一条数据后部分为什么不是陆成而是选择了另一条?
追问
BOX与BXCODE相连,但DEV_ID不能重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询