1、等值连接是最常见的一种连接查询,通常是在主外键关联关系的表间建立,并将连接条件设定为有关系的列,使用“=”连接相关的表。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、海口网络推广、小程序定制开发、海口网络营销、海口企业策划、海口品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供海口建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
2、非等值连接是指在多个表中使用非等号连接,查询在多个表中有非等值关联关系的数据,非等值连接操作符包括、=、、=、以及BETWEEN...AND、LIKE、IN等。
3、自连接是一种比较特殊的连接查询,数据来源是一个表。
4、左外连接是内连接的一种扩展,不止会返回满足连接条件的记录,还会返回那些不满足连接条件的操作符左边表的其他记录。
5、右外连接和左外连接相似,右外连接不止会返回满足连接条件的记录,还会返回那些不满足连接条件的操作符右边表的其他记录。
LEFT OUTER JOIN(左外连接):SELECT * FROM TABLE1 T1 LEFT OUTER JOIN TABLE2 T2 ON T1.ID = T2.ID
查询时TABLE1 和 TABLE2满足ID的值在俩个表同时存在的记录会统一成一条记录查询出来。
TABLE1中能找到ID值而在TABLE2中找不到对应的值,此时TABLE1中此记录的值不变,其他TABLE2字段的值补NULL,合并成一条记录查询出来。
SELECT A.*,B.* FORM TABLE_A A
LEFT JOIN TABLE_B B ON A.XX = B.XX
WHERE ...
/**
估计是连接到最大EndDate对应的相关记录,好像应该这样写
**/
SELECT *
FROM
S
LEFT JOIN
(
SELECT *
FROM
LC
LEFT JOIN
(
SELECT InnerCode,MAX(EndDate) EndDate
FROM
LC
GROUP BY InnerCode
) B
ON LC.InnerCode = B.InnerCode AND LC.EndDate = B.EndDate
) LSU
ON LSU.InnerCode = S.InnerCode
select
*
from
a FULL join b
on a.area_code=b.area_code;
WITH TELLER_ACCOUNT_MAIN AS(SELECT 1 teller_by,to_date('2018-05-01 13:23:55','yyyy-mm-dd hh24:mi:ss')update_time,500 total_mount FROM dual
UNION ALL SELECT 1 teller_by,to_date('2018-05-02 16:20:10','yyyy-mm-dd hh24:mi:ss'),777 total_mount FROM dual
)
,SYS_USER AS (SELECT 1 teller_by,'张三'NAME FROM dual
UNION ALL SELECT 2 teller_by,'李四'NAME FROM dual
)
--上面是虚拟的数据 ,因为我没有你的表
SELECT A.*,nvl(B.total_mount,0)total_mount FROM SYS_USER A LEFT JOIN (SELECT t.*
,row_number() OVER (PARTITION BY teller_by ORDER BY update_time DESC)rn
FROM TELLER_ACCOUNT_MAIN t)B ON A.teller_by=B.teller_by AND B.rn=1;