在INFORMIX中连接表的查询
如果FROM子句指定了多于一个表引用,则查询会连接来自多个表的行。连接条件指定各列之间(每个表至少一列)进行连接的关系。因为正在比较连接条件中的列,所以它们必须具有一致的数据类型。
SELECT语句的FROM子句可以指定以下几种类型的连接
| FROM子句关键字 | 相应的结果集 |
| CROSS JOIN | 笛卡尔乘积(所有可能的行对) |
| INNER JOIN | 仅对满足连接条件的CROSS中的列 |
| LEFT OUTER JOIN | 一个表满足条件的行,和另一个表的所有行 |
| RIGHT OUTER JOIN | 与LEFT相同,但两个表的角色互换 |
| FULL OUTER JOIN | LEFT OUTER 和 RIGHT OUTER中所有行的超集 |
2.2 内连接(Inner Join)
内连接是最常见的一种连接,它页被称为普通连接,而E.FCodd最早称之为自然连接。
下面是ANSI SQL-92标准
| select * from t_institution i inner join t_teller t on i.inst_no = t.inst_no where i.inst_no = "5801" |
其中inner可以省略。
等价于早期的连接语法
| select * from t_institution i, t_teller t where i.inst_no = t.inst_no and i.inst_no = "5801" |
2.3 外连接
2.3.1 左外连接(Left Outer Jion)
| select * from t_institution i left outer join t_teller t on i.inst_no = t.inst_no |
其中outer可以省略。
2.3.2 右外连接(Rigt Outer Jion)
| select * from t_institution i right outer join t_teller t on i.inst_no = t.inst_no |
2.3.3 全外连接(Full Outer)
全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行。在功能上,它等价于对这两个数据集合分别进行左外连接和右外连接,然后再使用消去重复行的并操作将上述两个结果集合并为一个结果集。
在关系型数据库中使用连接运算来自网络,仅供参考。
