永发信息网

Oracle数据库单表自关联查询疑问

答案:5  悬赏:80  手机版
解决时间 2021-04-02 23:41
Oracle数据库单表自关联查询疑问
最佳答案
select user_code,user_name,related_code from tablename t left join tablename s on t.user_code=s.related_code;
根据你提供的测试数据,输出结果还是这样,不变。
------------------------------------------------------
通过你补充了问题说明,我分析了下,程序如下:
SQL> select * from re_a;
 
 USER_CODE USER_NAME                        RELATED_CODE
---------- -------------------------------- ------------
      1001 张三                                     1002
      1002 李四                                     1001
      1003 王五                                     1004
      1004 赵六                                     1003
 
SQL> select * from re_bak;
 
 USER_CODE USER_NAME                        RELATED_CODE
---------- -------------------------------- ------------
 
SQL> exec pro_relation_baidu;
 
1001张三1002
1003王五1004
 
PL/SQL procedure successfully completed
 
SQL>create or replace procedure pro_relation_baidu IS

CURSOR cur_rea IS SELECT * FROM re_a;
CURSOR cur_bak IS SELECt * FROM re_bak;
--v_rea re_a%ROWTYPE;
j NUMBER;
BEGIN
  DELETe re_bak;
  FOR i IN cur_rea LOOP
    SELECT COUNT(t.USER_CODE) INTO j FROM re_bak t WHERe
    t.USER_CODE=i.RELATED_CODE AND t.RELATED_CODE=i.USER_CODE;
    IF j=0 THEN
    INSERT INTO re_bak VALUES(i.USER_CODE,i.USER_NAME,i.RELATED_CODE);
    ELSE
      NULL;
    END IF;
  END LOOP;
  FOR i IN cur_bak LOOP
  dbms_output.put_line(i.USER_CODE||i.USER_NAME||i.RELATED_CODE);
  END LOOP;
end pro_relation_baidu;
全部回答
左连接
left
select a.* from user a left outer join user b on a.user_code=b.user_code;(不知道你此处的表主键是不是user_code) 是的那就是 on a.user_code=b.user_code; 如果是别的就把on 后面换成别的主键关联就行了。
你是想在查询的结果集中related_code列也显示用户的名字而不是ID?
user_code为用户ID,user_name为用户姓名,related_code直接上级或说领导
查询结果中显示:用户ID,用户姓名,直接上级(其实也是用户姓名)。
select * from nls_session_parameters查看一下你的NLS_DATE_FORMAT等的一些参数,截图贴一下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
文言版《说文解字》:谋,虑难曰谋。从言,某
掌阅送书后怎么接受,求大神传授
上海哪个公园可以自助烧烤,就是自己带烤炉,
植发贵吗,费用是怎么算的
逆战又走向CF的老路了
求aegisub ass代码大神解答
夏天,被蚊子叮咬之处常会出现肿胀、瘙痒等症
中国沉香文化博物馆要不要门票
哪个牌子的电熨斗好?CUORI卓力怎么样
8.29十3.7十O.71十6.3
我5支5支地数正好数完我4支4支地数还多3支
冲狗(壬戌)煞南是什么意思
搞笑GIF图:姑娘,你都多大了还要爷爷抱着
清华大学郸城藉校友获学位证最高的是谁
2017年精准平码三中三请求帮忙。--!
推荐资讯
如果在菏泽县级乡镇上班,是住在乡镇吗?还是
新劳动法2015辞退到退休年龄的员工有没有赔偿
用欢声笑语 谈笑风生 津津乐道 侃侃而谈 妙语
“时光倒留”繁体字怎么写?
just-for-your-reference是什么意思
文山四桥车可以0首付吗翻斗车
求 PS神人 帮忙处理一张照片
身高135穿什么尺码-百度
颜集镇李集初级中学地址在哪,我要去那里办事
急求《老人与海》1990版本的链接,我想重温下
下雨天给鱼杀虫可不可以?
MY PET DOG I have a pet.She is a little do
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?