SQLServer数据库常⽤操作:多表联查(ON语句的使⽤)qq特殊代码
1.使⽤传统连接⽅式查询
(1). 有两张表Book(BookID,BookName,TypeID,AuthorID,…),BookType(TypeID,TypeName),查询每本书的书名和图书类型。
SELECT BookName, TypeName
FROM Book, BookType
WHERE Book.TypeID = BookType.TypeID
caseswitch用法(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
2.使⽤SQL连接⽅式(JIOIN…ON)查询
使⽤SQL连接⽅式时,必须将要连接的所有表或者视图放在 FROM 后⾯,⽤JOIN…ON连接起来,将所有表或者视图⽤ JOIN 连接,连接条件放在 ON 后⾯。
SQL连接说明
连接⽅式说明
内连接(INNER)系统默认的连接⽅式
外连接(OUTER)分为左外连接(LEFT)、右外连接(RIGHT)、完全外连接(FULL)⾃然连接或者交叉连接(CROSS)⽣成⼀个笛卡尔积
外连接(OUTER)说明
⽅式说明
左外连接(LEFT)结果集包括满⾜条件的⾏和左表的所有⾏
右外连接(RIGHT)结果集包括满⾜条件的⾏和右表的所有⾏
完全外连接(FULL)结果集包括满⾜条件的⾏和左右两表的所有⾏
例(1)可以改为
excel中随机数怎么弄SELECT BookName, TypeName
FROM Book JOIN BookType
ON Book.TypeID = BookType.TypeID
但是如果将例(2)改为mysql面试题sql语句多表联查
SELECT BookName, TypeName, AuthorName
FROM Book JOIN BookType JOIN Author
ON Book.TypeID = BookType.TypeID
ON Book.AuthorID = Author.AuthorID
则会出现
uncheck
因为三个表是两两连接。JOIN连接和ON条件是有顺序的,当顺序改变结果就不⼀定正确。JOIN…ON默认连接⽅式是内连接。可以改为
layers品牌SELECT BookName, TypeName, AuthorName
FROM Book JOIN BookType
ON Book.TypeID = BookType.TypeID
JOIN Author
ON Book.AuthorID = Author.AuthorID
或者
SELECT BookName, TypeName, AuthorName
FROM BookType RIGHT JOIN Book LEFT JOIN Author
ON Book.AuthorID = Author.AuthorID
ON Book.TypeID = BookType.TypeID
下⼀篇:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论