mysql左右连接的区别_sql: 左连接 和内连接区别联系

3d4a5852d38d44d842644a5c92d06b19.png

ce0d79728543b346952d352a82b543ac.png

select *

from (select rowtemp.*, rownum rownumtemp

from (select u.*,

UA.USR_INFO_ID USR_INFO_ID,

UA.ID USER_ACCOUNT_ID,

UA.USR_CUST_ID,

UA.ACCT_BAL,

UA.AVL_BAL,

UA.FRZ_BAL,

UA.CREATE_TIME UA_CREATE_TIME,

UA.audit_stat,

UA.audit_desc

from USER_ACCOUNT UA

left join (select id userinfo_Id,

nick_name,

name,

terminal u_terminal,

id_no,

mobile,

email,

bank_card_status,

open_account_status,

source_code,

user_label,

create_time u_create_time,

person_code,

org_person_code,

recommend_level,

org_code,

CODE_PATH,

ROLE_TYPE,

INTEGRA_AMOUNT,

paraent_recommend_code recommendercode,

prior name recommendername,

prior mobile recommendermobile,

prior person_code personcode,

prior org_person_code orgpersoncode,

prior user_label recommender_user_label,

prior org_code recommender_org_code

from (select ui11.id,

ui11.nick_name,

ui11.name,

ui11.terminal,

ui11.id_no,

ui11.mobile,

ui11.email,

ui11.bank_card_status,

ui11.open_account_status,

ui11.source_code,

ui11.user_label,

ui11.create_time,

ui11.person_code,

ui11.org_person_code,

coalesce(ui11.org_person_code,

urr.recommend_code) recommend_code,

ui11.org_code,

ui11.ROLE_TYPE,

ui11.INTEGRA_AMOUNT,

nvl(urr.recommend_level, '0') recommend_level,

urr.CODE_PATH,

urr.paraent_recommend_code

from user_info ui11

left join user_recommend_relation urr

on urr.user_info_id = ui11.id

where ui11.data_status = 'valid') tp

start with tp.recommend_level = '0'

connect by prior tp.recommend_code =

tp.paraent_recommend_code) u

on U.userinfo_Id = UA.USR_INFO_ID

where UA.DATA_STATUS = 'valid'

order by UA.AVL_BAL desc) rowtemp)

where rownumtemp <= 20

and rownumtemp > 10 ;

5c871e61ea20d43d4ffd9c32489966b5.png

这是后台的一个列表,当点击第一页的时候没有问题,但是选择50条记录的时候就有问题了,就会出现左图中的那个空白页面,当时以为是sql出现错误了,结果sql运行到plsql中是正常的,没有任务的问题,可以显示,就又在想会不会是页面标签元素有问题,从上看到下,没有发现问题,后来又点击分页的第二页,又出现空白,第三页又好了,第四页,第五页也没问题,到第六页又出现这种情况,后来单独运行sql选择10到20条数据,发现10条数据中有一条空的数据,那可能是因为空白数据的问题,但是又不能呢直接删除这些空白的数据,因为数据中这种数据有三十多条,这种直接操作数据库的方法是不合理的,后来看看sql,发现是左连接,有可能是左连接中关联出空白的数据,后来改成内连接(inner join),这样两边都有的数据,就不会有空白的数据,这样的话,数据就会正常显示了,但是为什么会出现关联数据的空白数据,可能是之前推荐关系的错乱,导致测试库出现脏数据,这样就造成页面显示的错误。

http://www.cnblogs.com/pcjim/articles/799302.html  (参考资料地址)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值