表连接方式

– 表连接的三种类型
– INNER JOIN 内连接(只返回两表中相匹配的记录。)
– 等值连接(连接条件为 = )
– 非等值连接(连接条件为 非 = ,如 > >= < <= 等)
– 内连接的两种写法:(以等值连接为例)
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A INNER JOIN B B ON (A.ID = B.ID);
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A JOIN B B ON (A.ID = B.ID);
– CROSS JOIN交叉连接
– 概念:没有WHERE条件的交叉连接将产生连接表所涉及的笛卡尔积。
– 即TABLEA的行数TABLEB的行数的结果集。(TABLEA 3行TABLEB 3行=9行)
– 注释:返回3*3=9行数据,即笛卡尔积。
SELECT * FROM TABLEA CROSS JOIN TABLEB
–以上写法等效于: SELECT * FROM TABLEA,TABLEB
– OUTER JOIN 外连接
– LEFT OUTER JOIN(可简写为 LEFT JOIN,左外连接)
– 返回的结果不仅包含符合连接条件的记录,还包含左边表中的全部记录。(若返回的左表中某行记录在右表中没有匹配项,则右表中的返回列均为空值)
– 两种写法:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A LEFT OUTER JOIN B B ON (A.ID = B.ID);
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A LEFT JOIN B B ON (A.ID = B.ID);
– RIGHT OUTER JOIN( RIGHT JOIN,右外连接)
– 返回的结果不仅包含符合连接条件的记录,还包含右边表中的全部记录。(若返回的右表中某行记录在左表中没有匹配项,则左表中的返回列均为空值)
– 两种写法:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A RIGHT OUTER JOIN B B ON (A.ID = B.ID);
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A RIGHT JOIN B B ON (A.ID = B.ID);
– FULL OUTER JOIN( FULL JOIN,全外连接)
– 返回左右两表的全部记录。(左右两边不匹配的项都以空值代替)
– 两种写法:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A FULL OUTER JOIN B B ON (A.ID = B.ID);
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A FULL JOIN B B ON (A.ID = B.ID);

---------------------延伸阅读: (+) 操作符-------------------
–(+) 操作符是ORACLE特有的表示法,用来表示外连接(只能表示 左外、右外 连接),需要配合
–WHERE语句使用。
–特别注意:(+) 操作符在左表的连接条件上表示右连接,在右表的连接条件上表示左连接。
–如:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM A A, B B WHERE A.ID = B.ID(+);

返回一个唯一序号
SELECT ROW_NUMBER() OVER(ORDER BY PD.EGUID)AS ID,PD.* FROM PAYOUTDATA PD

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值