连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据;
查询t_book表数据
查询t_bookType表数据
1、内连接查询
內连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表;
SELECT * FROM t_book,t_booktype;
SELECT * FROM t_book,t_booktype WHERE t_book.bookTypeId = t_booktype.id;/*内连接*/
SELECT bookName,price,booktypeName FROM t_book,t_booktype WHERE t_book.bookTypeId = t_booktype.id;/*内连接 只显示一部分字段,这样查询不好,如果字段多的话,比较混乱,需要使用到别名,如下面: 使用别名查询*/
使用别名查询
SELECT tb.bookName,tb.price,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;
提醒:
外连接,有时候查询,需要把某张表的某个字段全部显示出来,哪怕另外一张表没有字段显示为null
2.1、左连接查询
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 条件 可以查询出“表名1”的所有记录,而“表名2”中,只能查询出匹配的记录;
/*左连接 左边的表数据全部显示出来*/
SELECT * FROM t_book LEFT JOIN t_booktype ON t_book.bookTypeId = t_booktype.id;
SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb LEFT JOIN t_booktype tby ON tb.bookTypeId = tby.id;
2.2、右连接查询
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 条件可以查询出“表名2”的所有记录,而“表名1”中,只能查询出匹配的记录;
SELECT * FROM t_book RIGHT JOIN t_booktype ON t_book.bookTypeId = t_booktype.id;
SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb RIGHT JOIN t_booktype tby ON tb.bookTypeId = tby.id;
3、多条件连接查询
由多个条件组合进行查询的,使用多个条件连接查询可以实现复杂条件的组合
使用多个条件连接查询是一种常用的技术,它能够帮助开发人员实现更加灵活复杂的查询,提高查询的效率。
如下是使用多个条件连接查询的一个示例:
SELECT 字段1, 字段2…FROM 表1 LEFT JOIN 表2 ON 表1.字段1=表2.字段1 WHERE 条件1 and 条件2 and 条件3;
SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb LEFT JOIN t_booktype tby ON tb.bookTypeId = tby.id WHERE tb.bookTypeId > 5 AND tb.price > 20;
SELECT tb.bookName,tb.price,tby.booktypeName FROM t_book tb,t_booktype tby WHERE tb.bookTypeId = tby.id AND tb.price > 20;
推荐
欢迎关注我的公众号,不定期推送优质的文章,
微信扫一扫下方二维码即可关注。