如何用名称oracle sql替换ID

时间:2017-11-10 02:40:05

标签: sql oracle11g

我目前正在使用2张桌子, 广告和广告位,

广告包含属性ad_name和ad_id

广告位包含6列,ad_1 - ad_6,每个列都显示不同的广告

是否可以在打印广告位而不是ad_id的

时按名称列出广告

我将把目前的情况放在下面,但不是这个列出我预期的24个广告,它多次列出广告,最多625个结果

content

2 个答案:

答案 0 :(得分:1)

我想你只想要一系列left join s:

select s.*, a1.ad_name, a2.ad_name, a3.ad_name, a4.ad_name
from ad_slots s left join
     adverts a1
     on s.ad_1 = a1.ad_id left join
     adverts a2
     on s.ad_2 = a2.ad_id left join
     adverts a3
     on s.ad_3 = a3.ad_id left join
     adverts a4
     on s.ad_4 = a4.ad_id ;

答案 1 :(得分:0)

也许这样?

select (select ad_name from advert where a.ad_1 = ad_id ) as 'ad_1',
(select ad_name from advert where a.ad_2 = ad_id ) as 'ad_2',
(select ad_name from advert where a.ad_3 = ad_id ) as 'ad_3',
(select ad_name from advert where a.ad_4 = ad_id ) as 'ad_4'
from ad_slots a

enter image description here