SQL第十四章


第十四章 外连接


第十四章 外连接

内连接可以删除原表中的一些行。外连接可以保留这些行中的一部分。

第一节 外连接派生于内连接

外连接有三种类型:左外连接,右外连接,全外连接 左外连接 :添加回从第一个表中删除的所有行。null被入入其他表的列中。 右外连接:添加从第二个表中删除的所有行。第一个表匹配行所在的列设为null. 全外连接 :添加回了从两个表中删除的所有行。 左外连接: select a.*,b.* from twos a left outer join threes b on a.number_2=b.number_3 ouder by a.number_2; 右外连接 只是把左外连接中的left改为right 全外连接是把左外连接和右外连接用union连接起来。 union简介 两个表将一个表的行添加到另一个表中,同时两个两被组合到一起,形成一个单表。两个表的列数必须相同,而且这些列的数据类型的顺序也必须相同。重复的行将被删除。只能有一个order by子句。而且 它必须放在最后一行。列别名在第一个select语句中指定。

按顺序全外连接

任务:创建twos表和threes表的全外连接,创建一个按照数字顺序排列行的列。 select a.*, b.*, nz(a.number_2,b.number_3)*1 as sort_ort_order from twos a left outer join threes b union select c.*, d.*, nz(c.number_2,d.number_3)*1 from twos c right outer join threes d on c.number_2=d.number_3 order by sort_order; 任务:表exl203a包含有从1到100的数,其中缺少一部分数字,也有一部分数字出现多次。找出所有缺少和重复的数字。并计算每个这样的数字出现的次数。对缺少的数字计算 他们出现的次数 select a.n, b.n, count(b.n) from numbers_1to_100 a left outer join ex1203a b on a.n=b.n group by a.n, b.n having not(count(b.n)=1) order by a.n; 用两列或多列进行比较。 找出secl412a中有,secl412b表没有的行。 select a.first_col, a.second_col, b.first_col, b.second_col from sec1412a a left outer join sec1412b b on a.first_col=b.first_col and a.second_col=b.second_col where b.first_col is null 先执行外连接,。 order by a.first_col, a.second_col;

返回首页

你可能感兴趣的:(数据库)