sql中内联 和外联 区别


2007-05-15 17:37

这个概念一般看书不好理解。其实夜简单。有例子就简单了。

比如:

表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
这里会拿右表(B)的所有行去和A比较,上例来说是16,25,29和『16,23,25,29,30』比较。结果只包含B表的所有行。在这里显然不符合要求。

但SELECT cardid FROM B RIGHT OUTER JOIN A ON (B.cardid=A.cardid)
WHERE B.cardid IS NULL是对的。事实上右外联都是通过转换为左外联实现的。


版权声明:本文为博主原创文章,未经博主允许不得转载。

sql中内联&nbsp;和外联&nbsp;区别的更多相关文章

  1. SQL中内连接和外连接的区别

    数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...

  2. SQL Server中内连接和外连接的区别

    SQL Server中内连接和外连接的区别 假设一个数据库中有两张表,一张是学生表StudentInfo,一张是班级表ClassInfo,两张表之间用ClassId字段进行关联. 如果用内连接,正常的 ...

  3. lk中内联调用的dsb()

    lk中内联调用的dsb() 比如lk的uart_dm_init()函数就调用了dsb() /* Configure the uart clock */ clock_config_uart_dm(id) ...

  4. Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)【转】

    转自:http://www.linuxidc.com/Linux/2013-06/85221p3.htm 阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入 ...

  5. react中内联样式的z-index不起作用.

    <div style={{z-index: -100}} > hello,money. </div> 以上z-index样式如上写法是不起作用,原因是在react中内联样式的写 ...

  6. html中内联元素和块级元素的区别

    1.下表列出了内联元素和块级元素的主要区别 html中内联元素和块级元素的区别 块级元素 行内元素 独占一行,默认情况下,其宽度自动填满其父元素宽度 相邻的行内元素会排列在同一行里,直到一行排不下,才 ...

  7. __inline定义的内联函数和宏的区别

    转自:http://blog.csdn.net/lw370481/article/details/7311668 函数与宏 #define TABLE_COMP(x) ((x)>0?(x):0) ...

  8. 转-C++内联函数与宏定义区别

    主要区别: 1.内联函数在编译时展开,而宏在预编译时展开. 2.在编译的时候,内联函数直接被嵌入到目标代码中去,而宏只是一个简单的文本替换. 3.内联函数可以进行诸如类型安全检查.语句是否正确等编译功 ...

  9. C++中内联函数

    目录 什么是内联函数 如何使函数内联 为什么要使用内联函数 inline函数的优缺点分析 什么时候该使用内联函数 正文 在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么 ...

随机推荐

  1. WebStorm 调试JavaScript

    WebStorm强大的调试JavaScript功能 Vue项目调试总结-WebStorm+Chrome调试 WebStorm+Chrome插件JetBrains IDE Support进行实时调试 W ...

  2. 【BZOJ4281】[ONTAK2015]Związek Harcerstwa Bajtockiego LCA

    [BZOJ4281][ONTAK2015]Związek Harcerstwa Bajtockiego Description 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点.之后 ...

  3. 怎么用cookie解决选项卡问题刷新后怎么保持原来的选项?

    什么是cookie? Cookies虽然一般都以英文名呈现,但是它还是有一个可爱的中文名“小甜饼”.Cookies是指服务器暂存放在你的电脑里的txt格式的文本文件资料,主要用于网络服务器辨别电脑使用 ...

  4. SPFA的两个优化:SLF与LLL

    先举出个例题:洛谷P3371 [模板]单源最短路径 一眼扫去:最短路径. spfa不接受反驳... 附上代码: #include<iostream> #include<algorit ...

  5. 20170326 ABAP调用外部webservice 问题

    1.SE80 创建企业服务: 代理生成:出现错误 库处理程序中出现例外 错误的值:未知类型参考ns1:ArrayOfMLMatnrResource 尝试: 一.测试本地文件:---无效 1. 将网址链 ...

  6. Java for LeetCode 088 Merge Sorted Array

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. 解题思路一: ...

  7. git功能速查

    http://gitbook.liuhui998.com/index.html git rebase:在本地变基.将本地所有的修改应用到另一个分支上 git merge:在本地合并分支 git bra ...

  8. Git core objects

    Git core objects Core objects in git blob object tree object commit object Git low level commands gi ...

  9. jzyz集训 0611

    今天jjh和mzx搞的互测题目有必要记录一下. T1:序列上可以放012三种颜色,有m个限制表示[l,r]区间的颜色数目必须是c,求方案数. 显然的DP,但关键是状态怎么设置,连续设置了n个状态都被自 ...

  10. win下发现两个有用的快捷键

    调出命令行工具:win+x然后a.默认是cmd的管理员模式,可以改成powershell. 从当前目录打开命令行:shift + 鼠标右键