一:連接類型:
關聯查詢:只有存在關聯的表才能關聯查詢,完全獨立的表之間無法關聯
1.關聯的類型:自關聯,左關聯,右關聯,全關聯(full join)兩張表都是主表
2.關聯的表:兩張以上,以一張(或已關聯存在的表)為主表
3.關聯條件:主表中的某列與副表中的某列(一一對應)>所有已關聯的表可以看成一張主表,表中的列,都可以作為條件與將要被關聯的副表關聯
4.篩選條件:所有關聯的表中的列,都可以作為數據篩選條件
5.查詢范圍:所有關聯的表中的列,都可以被查詢
原理:
1.當使用關聯語句將兩張表進行關聯時,系統會通過關聯條件,自動生成一張新的符合條件表,不管再進行關聯,查詢等任何其它操作
都是針對於這張新生成的表進行的。
2.一旦進行關聯后,和原有的兩張表就沒有關系,它是一張新的表
3.生成新表的機制,主表的關聯條件跟副表的關聯條件進行匹配,滿足條件的數據自動整合成一i條新的數據放入新表,這時如果副表的關聯條件有重復,那么新生成表的數據就會重復,只有在匹配不到副表的情況下,副表數據才會為空,如果已匹配到就不會再去匹配空值
注意:
1.關聯查詢時,關聯條件一定要主外鍵關聯,不然會出現多余重復數據(不僅僅如此會造成重復數據,唯一衡量的標准即是:主,副表重復匹配)
2.2016-07-13
主外鍵關聯時,如果主表的關聯列是外鍵,會出現多余數據,副表數據查出來是空
作用:2016-06-24
1.數據有緊密關聯的必須用關聯查詢,如果用多條SQL語句拆開查詢,一旦哪一環節改變,他無法把改變傳遞給下一環節,它們相互之間獨立。
如果是關聯查詢任何一點的改變都會影響整條流程,所以,需要用關聯查詢的數據,必須用關聯查詢出來,而不是多條SQL語句拆分查出來
技巧:
1.在做關聯查詢時想要關聯的副表很關鍵,有的時候不去關聯已經存在的表,而是去關聯查詢出來的一張虛擬的表,這一點很重要,很多業務場景已有的表數據是不滿足
注意:2017-12-28:關聯查詢,首先看主表,where中不加任何篩選條件,主表中所有數據都會查出來,然后再看關聯表,再看關聯關系,關聯篩選條件,表和表直接的關聯,
會先根據關聯篩選條件 去查詢關聯表,得出虛擬表 再跟主表進行關聯匹配,有就關聯,多則重復加,沒有則為空