inner join on, left join on, right join on的区别与介绍

TableA aidadate 1a1 2a2 3a3 TableB bidbdate 1b1 2b2&

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Table A 
aid   adate 
1      a1 
2      a2 
3      a3 
TableB 
bid bdate 
1    b1 
2   b2 
4    b4 
两个表a,b相连接,要取出id相同的字段 
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 
此时的取出的是: 
1 a1 b1 
2 a2 b2 

那么left join 指: 
select * from a left join b on a.aid = b.bid 
首先取出a表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
3 a3 空字符 

http://hovertree.com/menu/sql/
同样的也有right join 
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
4 空字符 b4 

LEFT JOIN 或 LEFT OUTER JOIN。 
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行, 
而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值 

举个例子你就能知道了! 

A表(a1,b1,c1)      B表(a2,b2) 
a1   b1   c1       a2    b2 
01   数学 95       01    张三 
02   语文 90       02    李四 
03   英语 80       04    王五 
select A.*,B.* from A 
inner join B on(A.a1=B.a2) 
结果是: 
a1   b1   c1       a2    b2 
01   数学 95       01    张三 
02   语文 90       02    李四 

select A.*,B.* from A 
left outer join B on(A.a1=B.a2) 
结果是: 
a1   b1   c1       a2    b2 
01   数学 95       01    张三 
02   语文 90       02    李四 
03   英语 80       NULL  NULL 

select A.*,B.* from A 
right outer join B on(A.a1=B.a2) 
结果是: 
a1   b1   c1       a2    b2 
01   数学 95       01    张三 
02   语文 90       02    李四 
NULL NULL NULL     04    王五 

select A.*,B.* from A 
full outer join B on(A.a1=B.a2) 
结果是: 
a1   b1   c1       a2    b2 
01   数学 95       01    张三 
02   语文 90       02    李四 
03   英语 80       NULL  NULL 
NULL NULL NULL     04    王五

推荐:http://www.cnblogs.com/roucheng/p/3504463.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120399.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • STM32入门教程第一讲

    STM32入门教程第一讲STM32入门教程,采用STM32F10系列芯片

    2025年9月26日
    4
  • MaskRCNN RPN网络分析

    MaskRCNN RPN网络分析在每个锚生成5种大小和3种形状的候选框(每层特征对应一种大小,每个锚点对应3种形状)。并进行两层卷积后,做前景与背景的分类,与候选框的偏移量回归。与目标重叠>=0.7则为前景,与目标重叠<=0.3则为背景,其余框去掉。#############################################################RegionPropos…

    2022年6月23日
    24
  • FreeSync是什么

    FreeSync是什么FreeSync由AMD开发,是一种动态刷新率功能,通过嵌入式和外部DisplayPort面板实现,部分AMDGPU中的FreeSync技术解决了处理器和显示器之间的通信问题,消除了图像撕裂和波动,从而轻松实现流畅的游戏体验。于2014年首次宣布与Nvidia的专有G-Sync竞争。AMD已与VESA(视频电子标准协会)合作,将DisplaySync的支持添加到DisplayPort1.2a标准,以及后来的HDMI,然后将其用于FreeSync技

    2022年6月10日
    283
  • 妳不能不知道的部落格(zz)

    妳不能不知道的部落格(zz)妳不能不知道的部落格這是我給 微電腦傳真 的稿子 據說是刊登在五月號 第 207 期 上但是由於邀稿者離職之故 大概不會刊登出來了 以下為全文 共約一萬五千字 請注意這些內容使用需註明出處 未經允許不得作為商業使用 商業用書面印刷權目前僅授予微電腦傳真雜誌 妳不能不知道的部落格 Blog 是甚麼碗糕啊 源起 Blog 指的並非任何一套特定的軟體 也不是特定的系統或服務 Blog 實

    2025年7月6日
    2
  • HTTP和HTTPS 之间的区别

    HTTP和HTTPS 之间的区别

    2022年2月22日
    39
  • DPM2012系列之十六:在SCOM2012上集成DPM2012中央控制台

    DPM2012系列之十六:在SCOM2012上集成DPM2012中央控制台

    2021年8月21日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号