2016-06-08 90 views
-1

我的繼承人問題....SQL-外部聯接?

  • '用戶' 模式具有存儲數據的兩個表: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 

但現在,我不知道該去哪裏。就像我說過的那樣可能會失敗。

+0

添加一些示例表數據和預期結果。 – jarlh

+1

它是「左連接」或「左外連接」 –

回答

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中的相應值一起返回。

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已被註釋掉。
因爲似乎不需要來自第二個表的信息。