简单学习SQL的各种连接连接

  

SQL JOIN子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

  

最常见的加入类型:SQL内连接(简单的加入),SQL加入,SQL加入,SQL全部加入,其中前一种是内连接,后三种是外链接。

  

假设我们有两张表,表一是左边的表,表B是右边的表。

           id   的名字         1   谷歌         2   淘宝         3.   微博         4   脸谱网                     id   地址         1   美国         5   中国         3.   中国         6   美国            

  

内连接是最常见的一种连接,只连接匹配的行。

  

<强>内连接语法

        选择column_name(年代)   从表1   表2内连接   在   表1。column_name=表2. column_name      

<强>注释:内连接与连接是相同

  

简单学习SQL的各种连接加入

  

内连接产生的结果集中,是1和2的交集。

        从表内连接表B选择*   在表一。id=表B.id      

执行以上的SQL输出结果如下:

           id   的名字   地址         1   谷歌   美国         3.   微博   中国            

  

左加入返回左表的全部行和右表满足上条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用零代替。

  

<强>左加入语法

        选择column_name(年代)   从表1   左连接表2   在表1。column_name=表2. column_name      

注释:在某些数据库中,左加入称为

左外部连接   

简单学习SQL的各种连接加入

  

左加入产生表1的完全集,而2表中匹配的则有值,没有匹配的则以null值取代。

        从表选择*左连接表B   在表一。id=表B.id      

执行以上的SQL输出结果如下:

           id   的名字   地址         1   谷歌   美国         2   淘宝   零         3.   微博   中国         4   脸谱网   零            

  

对加入返回右表的全部行和左表满足上条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用零代替。

  

<强>正确的连接语法

        选择column_name(年代)   从表1   正确的连接表2   在表1。column_name=表2. column_name      

注释:在某些数据库中,对加入称为右外连接

  

简单学习SQL的各种连接加入

  

对加入产生表2的完全集,而1表中匹配的则有值,没有匹配的则以null值取代。

        从表一个直角连接表B选择*   在表一。id=表B.id      

执行以上的SQL输出结果如下:

           id   的名字   地址         1   谷歌   美国         5   零   中国         3.   微博   中国         6   零   美国            

  

全部加入会从左表和右表那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用零代替

  

<强>全外连接语法

        选择column_name(年代)   从表1   完全外连接表2所示   在表1。column_name=表2. column_name      

简单学习SQL的各种连接加入

  

全外连接产生1和2的并集。但是需要注意的是,对于没有匹配的记录,则会以零做为值。

        从表的完全外连接表选择* B   在表一。id=表B.id      

简单学习SQL的各种连接连接