SQL中的JOIN

来源:互联网 发布:超星网络教学平台 编辑:程序博客网 时间:2024/05/21 10:36

这里写图片描述

Students.addressId = Address.idStudents.id = Scores.studentIdScores.courseId = Courses.id

如何在SQL查询语句中将两个表联接起来?我们将运用最重要的语法Join。

select * from Studentsjoin  Address on Students.addressId = Address.id

join将Students和Address两表关联,关联需要一个或多个字段作为联接桥梁。例子中的桥梁就是addressid,我们使用on语句,将Students表的addressId字段和Address的id字段匹配。

这里需要注意的是,因为字段可能重名,所以一旦使用了Join,字段前应该加上表名,如Students.addressId和Address.id
,这种用法是为了字段的唯一性,否则遇到重名,系统不知道使用哪个字段,就会报错。

select * from Students as sjoin Address as a on s.addressId = a.id

上图是更优雅的写法,将表命名为一个缩略的别名,避免了语句过于冗余。不要使用拼音做别名,不是好习惯。

Join语法有很多不同的变形,Left Join,Outer Join等,新人很容易混淆。这个我们可以用数学中的交集和并集掌握。
这里写图片描述

通过上面的例子,我们已经掌握了Join的主流语法,其他无非是变种。比如加约束条件 where XX is null,这里的XX可以是结果为空的字段。拿上文Left Join的例子演示:

select Persons.LastName, Persons.FirstName, Orders.OrderNofromPersonsleft joinOrdersonPersons.Id_P=Orders.Id_PwhereOrders.Id_P is Null