關於Oracle中左連接的問題.大家help me.

zhuzhichao 2001-08-22 03:16:50
在Oracle中可以這樣左聯:
select tableA.A1,tableA.A2,tableB.B1,tableB.B2
from tableA,tableB where tableA.A1 = tableB.B1(+)
and tableB.B2(+)='a';

那如果我要在tableB.B2後用in,那左聯該怎麼寫:
select tableA.A1,tableA.A2,tableB.B1,tableB.B2
from tableA,tableB where tableA.A1 = tableB.B1(+)
and tableB.B2 in ('a','b');
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cod_aas 2001-09-10
  • 打赏
  • 举报
回复
好神奇
MountLion 2001-08-23
  • 打赏
  • 举报
回复
我的方法得到的结果与KingSunSha(弱水三千) 是不同的,你没有说清楚具体需求。
(我的SQL可以得到TableA的所有行)
zhuzhichao 2001-08-22
  • 打赏
  • 举报
回复
好!
我為什麼沒有想到
is null
KingSunSha 2001-08-22
  • 打赏
  • 举报
回复
select tableA.A1,tableA.A2,tableB.B1,tableB.B2
from tableA,tableB
where tableA.A1 = tableB.B1(+)
and (tableB.B2 in ('a','b') or tableB.B2 is null);
zhuzhichao 2001-08-22
  • 打赏
  • 举报
回复
有沒有其他的方法?
zhuzhichao 2001-08-22
  • 打赏
  • 举报
回复
to MountLion(人不寐):
你的方法確實可行.

有沒有不用子查詢的方法?
MountLion 2001-08-22
  • 打赏
  • 举报
回复
使用子查询:
select tableA.A1,tableA.A2,tableB.B1,tableB.B2
from tableA,
(select B1,B2 from tableB where B2 in ('a','b')) tableB
where tableA.A1 = tableB.B1(+)
;

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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