养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

如何实现查询sql左边表全部

时间:2024-11-08 09:10:17

作为关系型数据库开发的语言(数据库插叙、程序设计),将事物、事物之间关系看成一张表,表与表之间的关系即为事物之间的关系,

工具/原料

sqlserver

方法/步骤

1、我们用sqlserver作为测试,创建学生、教师、班级三张表。每张表都有一个id,int类型的(自增长),作为每个表的主键。

如何实现查询sql左边表全部

如何实现查询sql左边表全部

2、添加测试数据,并创建班级与学生、教师与班级的中间表。insertintodbo.Student(Sname)values('张三'),插入多条,由于id自增长所以sid自动填充了。类似将教师和班级也添加上测试数据。

如何实现查询sql左边表全部

3、创建班级教师表Class_Teacher,班级学生表Class_Student

如何实现查询sql左边表全部

4、然后将1和2放到1班,3和4放到2班。5和6不放(可以理解为刚入学没有分配班级)。然后将3个老师分配到3个班级insertintodbo.Class_Teachervalues(1,1)insertintodbo.Class_Teachervalues(2,2)insertintodbo.Class_Teachervalues(3,3)

如何实现查询sql左边表全部

5、这样,1班和2班各有迷撞笸痉两名同学,3班没有同学,有两个同学没有分配班级,每一个老师都分配了班级。现在要查询所有班级学生情况。selectt1.ClassName,t3.Sn锾攒揉敫amefromClasst1innerjoindbo.Class_Studentt2ont1.ClassId=t2.CIDinnerjoindbo.Studentt3ont2.[SID]=t3.[SID]

如何实现查询sql左边表全部

6、我们溴溢菏确要查询学生和老师的关系就比较复杂,因为学生和教师没有直接关系,需要通过班级进行对应。selectt1.ClassName,t4缕计瓤账.Tname,t5.SnamefromClasst1innerjoindbo.Class_Studentt2ont1.ClassId=t2.CIDinnerjoindbo.Class_Teachert3ont3.CID=t1.ClassIdinnerjoindbo.Teachert4ont4.TId=t3.TIDinnerjoindbo.Studentt5ont5.[SID]=t2.[SID]

如何实现查询sql左边表全部

7、但是我们看到的结果始终少两个学生的信息,怎么样才能显示所有学生的信息呢。我们使用leftjoin。selectt1.*,t2.*fromStudentt1leftjoinClass_Studentt2ont1.[SID]=t2.[SID]

如何实现查询sql左边表全部

8、可以看到左边表全部显示,没有对应记录的地方为NULL,既然有leftjoin,也会有rightjoin。selectt1.*,t2.*fromClass_Studentt2rightjoinStudentt1ont1.[SID]=t2.[SID]效果类似。

如何实现查询sql左边表全部

© 一点知识