如何使用来自不同表的关系创建视图

时间:2014-10-14 09:51:20

标签: sql oracle

有两个表STUDENTRELATION

Student

Roll No |名称|标记


彼得前书

2 Daniel 45

3艾玛43

4 Drake 47

5 John 49

Relation

Roll No |年轻的兄弟姐妹


1 2

2 NULL

3 NULL

4 3

5 NULL

现在我想创建一个显示此类数据的视图

Roll No |标记|兄弟标记


1 40 45

2 45 0

3 43 0

4 47 43

5 49 0

假设表中最多只有两个兄弟,Roll No是两个表的主键。兄弟姐妹之间的关系只是一种方式(弟弟妹妹)。我对SQL很陌生,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT
  R.RolNo,
  COALESCE(S1.Marks, 0) Marks,
  COALESCE(S2.Marks, 0) SiblingMarks
FROM Relation R
  LEFT JOIN Student S1
    ON R.RolNo = S.RolNo
  LEFT JOIN Student S2
    ON R.YoungerSibling = S2.RolNo