1

我有两张桌子,第一个 d001 有两个 col:

ACC_ID, ACC_NAME
      |         |
      |         |  
      |         |

第二个 d002 有四个 col

DATE ACC_ID_1, ACC_ID_2, ACC_ID_3, ACC_ID_4 
    |        |         |         |         |      
    |        |         |         |         |
    |        |         |         |         |

我如何使视图包含

DATE, ACC_NAME1, ACC_NAME_2, ACC_NAME_3, ACC_NAME_4
    |          |           |           |           |      
    |          |           |           |           |
    |          |           |           |           |

我尝试左加入,但结果仅适用于一列!!!

4

1 回答 1

3

您总共需要离开加入4次!

select t.date,
       a.acc_name acc_name1,
       b.acc_name acc_name2,
       c.acc_name acc_name3,
       d.acc_name acc_name4
from d002 t
left join d001 a on a.acc_id = t.acc_id_1
left join d001 b on b.acc_id = t.acc_id_2
left join d001 c on c.acc_id = t.acc_id_3
left join d001 d on d.acc_id = t.acc_id_4

话虽如此,您应该在下一个方便的机会重新访问表结构时将数据规范化为 4 行。

于 2012-10-10T12:21:06.753 回答