在具有值的列上连接SQL表

时间:2012-11-07 22:54:50

标签: sql join

假设我有以下表格

Collection DirectorId StudioId
   1             NULL      1
   2             2         NULL
   3             NULL      2


Director MovieId
  1        1
  2        4

Studio   MovieId
  1        1
  2        3
  2        4
  1        2

集合表将始终具有导演或工作室ID,但从不都兼有。

如何编写查询以将所有电影集中在一个集合中,以便我最终得到

CollectionID MovieID
1            1
1            2
2            4
3            3
3            4

我希望这是有道理的

1 个答案:

答案 0 :(得分:1)

这应该有用(不确定你的列名,但你明白了):

select c.CollectionID, isnull(d.MovieId, s.MovieId) MovieID
from Collection c
left join Director d on d.Director=c.DirectorId
left join Studio s on s.Studio=c.StudioId