SQL表串連圖解,sql表圖解

來源:互聯網
上載者:User

SQL表串連圖解,sql表圖解

可以通過圖看下

多表查詢分為 內、外串連

外串連分為左串連(left join 或left outer join)、右串連(right join 或者 right outer join)、和完整外部串連 (full join 或者 full outer join)

左串連(left join 或 left outer join)的結果就是left join子句中的左表的所有行,而不僅僅是連結列所匹配的行,如果左表中的某行在右表中沒有匹配,則在相關聯的結果行中右表的所有選擇列均為空白值(NULL)

SQL文法 select * from table1 left join table2 on table1.條件列名 = table2.條件列名;

注釋: 顯示的就是table1中的所有列和能匹配的列

右串連(right join 或 right outer join )在這裡不做多說這左串連很象但是是相反的,只說一下文法

select *from table1 right join table2 on table1. 條件列= table2.條件列

完全外部串連(full join 或 full outer join)

顯示左右表中的所有行,當某一個表中沒有匹配的行時,則另一個表的挑選清單列包含空值(NULL)如果有則顯示全部資料

SQL文法:

select *from table1 full join table2 on table1.條件列名= table2.條件列名

內串連:
概念:內串連就是用比較子比較要用串連列的值的串連

內串連(join 或者inner join )

SQL文法:

select *fron table1 join table2 on table1.條件列名 = table2.條件列名

返回符合匹配條件的兩表列

等價於:

select A* ,B* from table1 A ,table2 B where A.條件列名 =B.條件列名
select *form table1 cross join table2 where table1.條件列名 = table2.條件列名(註: Cross join 後面不能跟on 只能用where)

交叉串連(完全)

概念:沒有用where子句的交叉串連將產生串連所涉及的笛卡爾積第一個表的行數乘以第二個表的行數等於笛卡爾積和結果集的大小

交叉串連: Cross join(不帶條件where,如果帶返回或顯示的是匹配的行數)

SQL文法:

select *from table1 cross join table2

如果有條件(where)

select * from table1 cross join table2 where table1. 條件列名= table2.條件列名

等價於

select *from table1,table2 (不帶where)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.