当前位置:   article > 正文

SQL Server 数据库常用操作:多表联查(JOIN...ON语句的使用)_join on多表的用法

join on多表的用法

1.使用传统连接方式查询
(1). 有两张表Book(BookID,BookName,TypeID,AuthorID,…),BookType(TypeID,TypeName),查询每本书的书名和图书类型。

SELECT BookName, TypeName
FROM Book, BookType
WHERE Book.TypeID = BookType.TypeID
  • 1
  • 2
  • 3

(2). 有三张表Book(BookID,BookName,TypeID,AuthorID,…),BookType(TypeID,TypeName),Author(AuthorID,AuthorName,…)查询每本书的书名、图书类型、作者姓名。

SELECT BookName, TypeName, AuthorName
FROM Book, BookType, Author
WHERE Book.TypeID = BookType.TypeID
AND Book.AuthorID = Author.AuthorID
  • 1
  • 2
  • 3
  • 4

2.使用SQL连接方式(JIOIN…ON)查询
  使用SQL连接方式时,必须将要连接的所有表或者视图放在 FROM 后面,用JOIN…ON连接起来,将所有表或者视图用 JOIN 连接,连接条件放在 ON 后面。
SQL连接说明

连接方式说明
内连接(INNER)系统默认的连接方式
外连接(OUTER)分为左外连接(LEFT)、右外连接(RIGHT)、完全外连接(FULL)
自然连接或者交叉连接(CROSS)生成一个笛卡尔积

外连接(OUTER)说明

方式说明
左外连接(LEFT)结果集包括满足条件的行和左表的所有行
右外连接(RIGHT)结果集包括满足条件的行和右表的所有行
完全外连接(FULL)结果集包括满足条件的行和左右两表的所有行

例(1)可以改为

SELECT BookName, TypeName
FROM Book JOIN BookType
ON Book.TypeID = BookType.TypeID
  • 1
  • 2
  • 3

但是如果将例(2)改为

SELECT BookName, TypeName, AuthorName
FROM Book JOIN BookType JOIN Author
ON Book.TypeID = BookType.TypeID
ON Book.AuthorID = Author.AuthorID
  • 1
  • 2
  • 3
  • 4

则会出现
在这里插入图片描述
因为三个表是两两连接。JOIN连接和ON条件是有顺序的,当顺序改变结果就不一定正确。JOIN…ON默认连接方式是内连接。
可以改为

SELECT BookName, TypeName, AuthorName
FROM Book JOIN BookType
ON Book.TypeID = BookType.TypeID
JOIN Author
ON Book.AuthorID = Author.AuthorID
  • 1
  • 2
  • 3
  • 4
  • 5

或者

SELECT BookName, TypeName, AuthorName
FROM  BookType RIGHT JOIN Book LEFT JOIN Author
ON Book.AuthorID = Author.AuthorID
ON Book.TypeID = BookType.TypeID
  • 1
  • 2
  • 3
  • 4

下一篇:SQL Server 数据库常用操作:子查询(嵌套查询)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/189027
推荐阅读
相关标签
  

闽ICP备14008679号