这样一个关联能不能一条查询语句搞定?

[复制链接]
查看11 | 回复4 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
表1TAB1(sn, code1,code2)
表2TAB2(code,desc)
表1中的code1与code2都引用表2中的code.
能不能查询一次,把code1与code2用表2中的desc全关联出来?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
查询的结果是要什么样的?
是不是这样:
select a.sn, a.code1, b.desc, a.code2, c.desc
from tab1 a, tab2 b, tab2, c
where a.code1 = b.code
and a.code2 = c.code;
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
谢谢,搞定了。
还有一问,怎样写左连接,就是,在code1在tab2中不存在时,用NULL表示。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
试试:
select a.sn, a.code1, nvl(b.desc, 'NULL'), a.code2, nvl(c.desc, 'NULL')
from tab1 a, tab2 b, tab2, c
where a.code1 = b.code (+)
and a.code2 = c.code (+);
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我也觉得这样写方便,但oracle10 的文档已经不推荐使用(+)的表示方式了,为了使sql具有可移植性,用outer join语句。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行