SQL 如何在sql server中加入三个表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/40302484/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 04:58:30  来源:igfitidea点击:

How to join three tables in sql server

sqlsql-serverjoin

提问by ABCDE

I have three tables:

我有三张表:

  • Chapter (ChapterNo, Desc)
  • Lesson (LessonNO, Dec, ChapterNo)
  • Case (CaseNo, Desc, LessonNo)
  • 章节 (ChapterNo, Desc)
  • 课程 (LessonNO, Dec, ChapterNo)
  • 案例(案例编号,描述,课程编号)

As you see, the three tables are all connected. What I want is to return all the chapters (even without lessons in it), all the lessons (even without cases in it) and all the cases.

如你所见,三张表都是相连的。我想要的是返回所有章节(即使没有课程),所有课程(即使没有案例)和所有案例。

I am sorry to say but I really don't have an idea so I have no sample code. I hope my explanations are enough.

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

回答by Sandip - Full Stack Developer

USE 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

回答by GNMercado

Use Left Join query in order to get your desired result

使用 Left Join 查询以获得您想要的结果

As for naming of tables. Don't use Caseas table name because it is a reserved word for SQL.

至于表的命名。不要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

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

回答by mansi

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

回答by Jyothish Bhaskaran

Select * From Chapter c
   Left Join Lesson l On c.ChapterNo=l.ChapterNo  
   Left Join Case cs On cs.LessonNo=l. LessonNo