连接查询是将两个或两个以上的表按照某个条件连接起来,从中选择需要的数据。
示例会用到下面两张表
t_book
t_bookType
1,内连接查询
内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表。
SELECT * FROM t_book,t_bookType;
会以下面这种方式显示:
可以在后面加上限定条件:
SELECT * FROM t_book, t_bookType WHERE t_book.bookTypeId = t_bookType.id;
运行结果:
为使不至于混乱,可以给给表另外再取个名字,如下。运行结果是一样的。
eg:
SELECT tb.bookName, tb.author, tby.bookTypeName FROM t_book tb, t_bookType tby WHERE tb.bookTypeId = tby.id;
2,外连接查询
外连接可以查出某一张表的所有信息。
格式:
SELECT 属性名列表 FROM 表名 1 LEFT|RIGHT JOIN 表名 2 ON 表名 1.属性名 1 = 表名 2.属性名 2;
外连接又分为左连接和右连接.
(1) 左连接查询
可以查询出“表名 1”的所有记录,而“表名 2”中,只能查询出匹配的记录;
eg:
SELECT * FROM t_book LEFT JOIN t_bookType ON t_book.bookTypeId = t_bookType.id;
(2) 右连接查询
可以查询出“表名 2”的所有记录,而“表名 1”中,只能查询出匹配的记录
eg:
SELECT * FROM t_book LEFT JOIN t_bookType ON t_book.bookTypeId = t_bookType.id;
(3)多条件连接查询
多条件查询就是条件有多个,条件与条件之间用AND连接
SELECT * FROM t_book RIGHT JOIN t_bookType ON t_book.bookTypeId = t_bookType.id AND t_book.price > 70;
//价格大于70元的书只有两本