将一个表中的多个值连接到另一个表上的共享值

时间:2014-04-07 16:11:48

标签: sql join toad

如果发布此问题我很抱歉,但除了使用示例之外,我真的不知道如何正确描述它。

为了简化我的问题,我创建了以下表格。

基本上,我想链接

  1. FRUIT.COLOUR_ID到COLOURSHAPES.VALUE
  2. FRUIT.SHAPE_ID到CLOURSHAPES.VALUE
  3. 但是,我想要显示的是COLOURSHAPES.VALUE作为2个单独的列。 此外,我希望每种水果都能显示其可用性的次数。

    FRUITNAME   COLOUR  SHAPE   AVAILABILITY
    ORANGE  ORANGE  ROUND   METRO
    ORANGE  ORANGE  ROUND   LOBLAWS
    
    
    TABLE #1: FRUIT         
    FRUIT_ID    FRUITNAME   COLOUR_ID   SHAPE_ID
    1   ORANGE  10  20
    2   BANANA  11  21
    3   APPLE   12  20
    4   PEAR    13  20
    
    TABLE #2: COLOURSHAPES          
    VALUE   DESCRIPTION     
    10  ORANGE      
    11  YELLOW      
    12  RED     
    13  BROWN       
    20  ROUND       
    21  LONG        
    
    TABLE #3: AVAILABILITY          
    FRUIT_ID    STORE       
    1   METRO       
    1   LOBLAWS     
    2   FRESHCO     
    3   METRO       
    4   FRESHCO 
    

1 个答案:

答案 0 :(得分:0)

您可以两次加入Table2,一次获得颜色,然后再次变形。

select T3.FRUIT_ID, T1.FRUIT_NAME, T3.STORE, T2A.DESCRIPTION, T2B.DESCRIPTION
from TABLE3 T3
join TABLE1 T1
left join TABLE2 T2A on T1.COLOUR_ID=T2A.VALUE
left join TABLE2 T2B on T1.SHAPE_ID=T2B.VALUE