赞
踩
关联查询是指对多表进行联合查询,主要通过JOIN语句将两个或多个表中的行组合在一起进行查询。HQL JOIN 类似于 SQL JOIN,但其仅支持等值连接,具体包括内连接(INNER JOIN)、外连接(OUTER JOIN)与交叉连接(CROSS JOIN)。
1.内连接
内连接用于按连接条件组合两个表中的记录,返回两个表的交集。语法如下。
【语法】
table reference [INNER] JOIN table factor join condition]
其中,INNER 关键字通常会被省略,也就是说 JOIN是 INNER JOIN 的简写。
2. 外连接
外连接分为3类:左外连接(LEFT OUTER JOIN)、右外连接 (RIGHIT OUTER JOIN)和全外连接(FULL OUTER JOIN)。
(1) 左外连接
左外连接简称左连接。由内连接可以看出,结果集中的记录是在连接的两个表中都
存在的记录。左连接的区别是左表的记录全部被选择,而右表只选择符合连接条件的记录,最后将无法与左表中记录进行对应的右表记录显示为 NULL。
【语法】
table_ reference LEFT [OUTER] JOIN table_ factor [join _condition
(2) 右外连接
右外连接简称右连接。与左连接相反,右连接将右表的记录全部选择,而将左表中没有符合连接条件的记录显示为 NULL。
【语法】
table reference RIGHT [OUTER] JOIN table_ factor [join condition]
(3)全外连接
全外连接结合了左连接和右连接的结果,即:对左表而言,右表中不符合连接条件的记录显示为 NULL:对右表而言,左表中不符合连接条件的记录显示为 NULL。语法如下。
【语法】
table_reference FULL [OUTER] JOIN table factor [join _condition]
全外连接示意如图 4.10所示。
3. 交叉连接
交叉连接又称笛卡尔乘积,相当于两个表相乘。比如表A交叉连接表B,则表A中的每一条记录都与表B 中的每一条记录连接。语法如下。
【语法】
table_reference CROSS JOIN table_ factor [join_condition]
交叉连接示意如图4.11所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。