你真的会玩SQL吗?内连接、外连接
作者:网络转载 发布时间:[ 2015/10/30 14:22:02 ] 推荐标签:数据库
大多数人一般写多表查询会这样写select * from tbA ,tbB 没有用到JOIN关键字,太Low了,官网标准建议是用JOIN明确表间的关系,下面具体来讲。
连接类型:
交叉联接 得到所连接表的所有组合 (笛卡儿集)cross join
内联接得到连接表的满足条件的记录组合inner join on
外联接(左、右)得到一个表的所有行,及其余表满 足连接条件的行 full | left | right outer join on
交叉联接
在这类联接的结果集内,两个表中每两个可能成对的行占一行。
但是如果在交叉联接中加入where 子句相当与是内联接
例:
SELECT title, pub_name
FROM titles Cross JOIN publishers
Where titles.pub_id = publishers.pub_id
这相当于我们一开始的写法:SELECT title, pub_name FROM titles , publishers Where titles.pub_id = publishers.pub_id
执行过程:
内联接
仅显示两个联接表中的匹配行的联接。(这是查询设计器中的默认联接类型。)
例:
SELECT title, pub_name
FROM titles INNER JOIN publishers
ON titles.pub_id = publishers.pub_id
执行过程:
左向外联接
包括第一个命名表(”左”表,出现在 JOIN 子句的左边)中的所有行。不包括右表中的不匹配行。
例:
SELECT titles.title_id,titles.title,publishers.pub_name
FROM titles LEFT OUTER JOIN publishers
ON titles.pub_id = publishers.pub_id
右向外联接
包括第二个命名表(”右”表,出现在 JOIN 子句的右边)中的所有行。不包括左表中的不匹配行。
例:
SELECT titles.title_id, titles.title,publishers.pub_name
FROM titles RIGHT OUTER JOIN publishers
ON titles.pub_id = publishers.pub_id
执行过程:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11