2016-10-28 45 views
0

我有三个表:如何加入SQL Server中的三个表

  • 章(ChapterNo,DESC)
  • 课(LessonNO,十二月,ChapterNo)
  • 案例(CaseNo,说明,LessonNo)

正如你所看到的,三个表都是连接的。我想要的是返回所有章节(即使没有课程),所有课程(甚至没有案例)和所有案例。

我很遗憾地说,但我真的没有想法,所以我没有示例代码。我希望我的解释就够了。

+2

使用左加入了三桌 –

+2

的Sandip的查询会帮助你,但我劝你告诉你的老师,你仍与SQL的基本概念上的挣扎。如果你很难弄清楚这一点,那么在后面的路上会很糟糕。 – Jens

回答

3

使用LEFT JOIN:

SELECT 
    C.*, 
    L.*, 
    CA.* 
FROM Chapter C 
LEFT JOIN Lesson L ON C.ChapterNo=L.ChapterNo 
LEFT JOIN Case CA ON L.LessonNo=CA.LessonNo 
1

使用左连接的查询,以获得您想要的结果

至于表的命名。不要使用Case作为表名,因为它是SQL的保留字。

SELECT CH.ChapterNo,CH.Desc,LE.LessonNo,LE.Dec,CA.CaseNo,CA.Desc FROM Chapter CH LEFT JOIN Lesson LE ON CH.ChapterNo = LE.ChapterNo LEFT JOIN Cases CA ON LE.LessonNo = CA.LessonNO

1
SELECT * 
FROM Chapter C 
LEFT JOIN Lesson L ON C.ChapterNo=L.ChapterNo 
LEFT JOIN Case CA ON L.LessonNo=CA.LessonNo 
1
Select * From Chapter c 
    Left Join Lesson l On c.ChapterNo=l.ChapterNo 
    Left Join Case cs On cs.LessonNo=l. LessonNo