SQL-Outer Join?

时间:2016-06-08 14:17:06

标签: sql oracle

继承人的问题......

  • '用户' schema有2个表来存储数据:ABC_DATABC_SAT。它们与列ABC_DAT_ID相关联。

  • ABC_DATsource_up_idsink_up_id)表也与USER.BID(up_id)表相关。

  • 编写一个查询,返回ABC_DAT表中的所有数据,以及source_up_id和sink_up_id的IP_NAME

我想我需要一个外部联接。我对SQL有些新意,所以我想把它弄清楚。也许我完全离开了,甚至不需要外连接。这是我到目前为止所拥有的:

select  * from USER.ABC_DAT p
outer join USER.BID l
on p.IP_NAME=l.IP_NAME

但现在,我不知道该去哪里。就像我说的那样,可能还有一段距离。

2 个答案:

答案 0 :(得分:0)

你可以使用"左外连接"对此。

select  * from USER.ABC_DAT p
left outer join USER.BID l
on p.IP_NAME=l.IP_NAME

此查询包含ABC_DAT表作为左表。因此,它返回ABC_DAT表中的所有值以及表BID中的相应值。

答案 1 :(得分:0)

根据问题中的描述:

select 
 ad.*, 
-- as.*,
 usource.IP_NAME as user_source_ip_name, 
 usink.IP_NAME as user_sink_ip_name
from user.ABC_DAT ad 
--inner join user.ABC_SAT as on (ad.abc_dat_id = as.abc_dat_id) 
left join user.BID usource on (ad.source_up_id = usource.up_id)
left join user.BID usink on (ad.sink_up_id = usink.up_id)
order by ad.abc_dat_id;

请注意,ABC_SAT的加入已被注释掉 因为似乎不需要来自第二张表的信息。