多表查询--外连接

来源:互联网 发布:东华金云网络 编辑:程序博客网 时间:2024/06/05 15:08

Left join , Right Join, Inner Join 用法(生成新的数据表)即是多表连接,组成一个新的数据表输出!

仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。

例子 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

       空字符同样的也有right join 指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据

       此时的取出的是:

                                  1 a1 b1

                                  2 a2 b2

                                  4 空字符 b4

        LEFT JOIN 或 LEFT OUTER JOIN。

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

        SQL:JOIN之完全用法外联接可以是左向外联接、右向外联接或完整外部联接。在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT JOIN 或 LEFT OUTER JOIN。

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

         RIGHT JOIN 或 RIGHT OUTER JOIN。右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

         FULL JOIN 或 FULL OUTER JOIN。完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。

原创粉丝点击