oracle 关联查询两个表,两张表关联查询,该怎么处理

两张表关联查询A表有userIduserNameB表有userId,userState假设A表中有userId为:111,222,333userName为:aaa,bbb,ccc三个人B表中有userId为:111,222userState为:1,1两个人我现在想A表和B表关联查询所有数据,并且A表中的userId为333的数据也要显示出来,页面上状态显示为0,请问SQL...
摘要由CSDN通过智能技术生成

两张表关联查询

A表有 userId userName  B 表有 userId,userState

假设

A表中有userId 为:111,222,333  userName 为:aaa,bbb,ccc三个人

B表中有userId 为:111,222 userState为:1,1 两个人

我现在想A表和B表关联查询所有数据,并且A表中的userId为333的数据也要显示出来,页面上状态显示为0,请问SQL语句该怎么写好呢?

------解决方案--------------------

nvl(userState,0)

A.userid = B.userid(+)

------解决方案--------------------

这样的效果可以么?

with A as

(

select '111,222,333' userId,'aaa,bbb,ccc' userName  from dual

),B as

(

select '111,222' userId ,'1,1' userState from dual

)

select t1.userId,t1.userName,nvl(t2.userState,0) userState

from

(

select replace(regexp_substr(userId,'[^,]+',1,level),',',' ') userId,

replace(regexp_substr(userName,'[

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值