没有合适的资源?快使用搜索试试~ 我知道了~
sql中内联和外联区别
4星 · 超过85%的资源 需积分: 50 96 下载量 77 浏览量
2009-02-24
20:55:48
上传
评论
收藏 1KB TXT 举报
温馨提示
试读
2页
简单介绍sql中内联和外联区别(用实例说明问题,简单明了)
资源推荐
资源详情
资源评论
比如:
表A(主表)
cardid username
16 aa
23 bb
25 cc
29 dd
30 ee
表B(子表)
countid cardid score
1 16 34
2 25 300
3 29 1.5
在 cardid 列上联接 A 表和 B 表。
分别用内联、外联试试。
内联:
SELECT cardid FROM A INNER JOIN B ON (A.cardid<>B.cardid)
那么这样查询就会交叉地拿A和B去比较,上例来说就是拿『16,23,25,29,30』和16,25,29比。那么显然<>的结果是:23,25,29,30,16,25,29,30。。。不符合我们的要求。因为内联本来就只有找相同的功能,没有找不同的功能。
左外联:
SELECT cardid FROM A LEFT OUTER JOIN B ON (B.cardid=A.cardid) WHERE B.cardid IS NULL
这里会拿左表(A)的所有行去和B比较,上例来说是『16,23,25,29,30』先和16比较,然后再和23比较。它将包括所有A表内容,而对应的B表,符合条件就打印,否则没有的话会为null。所以这样就按要求得到了为null的值,也就是缺少的。
右外联:
SELECT cardid FROM A RIGHT OUTER JOIN B ON (B.cardid=A.cardid) WHERE B.cardid IS NULL
表A(主表)
cardid username
16 aa
23 bb
25 cc
29 dd
30 ee
表B(子表)
countid cardid score
1 16 34
2 25 300
3 29 1.5
在 cardid 列上联接 A 表和 B 表。
分别用内联、外联试试。
内联:
SELECT cardid FROM A INNER JOIN B ON (A.cardid<>B.cardid)
那么这样查询就会交叉地拿A和B去比较,上例来说就是拿『16,23,25,29,30』和16,25,29比。那么显然<>的结果是:23,25,29,30,16,25,29,30。。。不符合我们的要求。因为内联本来就只有找相同的功能,没有找不同的功能。
左外联:
SELECT cardid FROM A LEFT OUTER JOIN B ON (B.cardid=A.cardid) WHERE B.cardid IS NULL
这里会拿左表(A)的所有行去和B比较,上例来说是『16,23,25,29,30』先和16比较,然后再和23比较。它将包括所有A表内容,而对应的B表,符合条件就打印,否则没有的话会为null。所以这样就按要求得到了为null的值,也就是缺少的。
右外联:
SELECT cardid FROM A RIGHT OUTER JOIN B ON (B.cardid=A.cardid) WHERE B.cardid IS NULL
资源评论
- h7697852832016-05-10非常实用,很感谢分享
Michael-JOE
- 粉丝: 33
- 资源: 106
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功