資料庫中經常要用到多個表的關聯。mysql的關聯主要包括inner join,left join,right join三種,下面分別加以介紹,並舉例說明。
顧名思義,inner join集合了兩個表的資訊,只有都包含的才關聯在一起。
left join以第乙個表為準,後乙個表資訊不完整記為null
right join以第二個表為準,前乙個表資訊不完整記為null
此外要注意,乙個關聯條件對應到表中可能對應好幾條資訊,這樣需要將這些資訊都關聯出來。
舉例說明:
建立如下三張表article,us,type:
下面只詳細介紹右關聯,其他的關聯只給出語句以及最後的結果。
首先做前兩張表的右關聯
select article.aid,article.title,us.username from article right join us on article.uid=us.uid;
由於是有關聯,是以us表為準的。us.uid為1的在article中有兩項結果,而us.uid為3的在article中沒有,所以最後得到的結果如下:
接著在這個結果上繼續右關聯type表
select article.aid,article.title,us.username,type.typename from article right join us on article.uid=us.uid right join type on article.tid=type.tid;
此時將以type表為準,對於上面的關聯結果,實際上aid1->tid:1,aid2->tid:2,aid3->tid:1,所以最後得到結果如下:
對於inner join和left join,和上面類似,就介紹簡單的兩表關聯吧。
注意這裡第乙個表是:us
mysql表關聯 MySQL表關聯的幾種常用方式
工作中我們經常會使用表與表關聯來查詢資料,如果對join 不熟悉,可能會得到我們不想要的節過,這裡就來介紹下join的幾種常用方法 建表及插入資料,create table school sch id int 11 not null auto increment,sch name varchar 5...
mysql如何關聯 MySQL 如何執行關聯查詢
當前mysql執行的策略很簡單 mysql對任何關聯都執行巢狀迴圈操作,即mysql先在乙個表中迴圈取出單條資料,然後再巢狀迴圈到下乙個表中尋打匹配的行,依次下去,直到描述到所表表中匹配的行為止。然後根據各個表匹配的行,返回查詢中需要的各個列。mysql會嘗試在最後乙個關聯表中打到所有匹配的行,如果...
mysql如何關聯 MySQL如何執行關聯查詢
mysql中 關聯 join 一詞包含的意義比一般意義上理解的要更廣泛。總的來說,mysql認為任何乙個查詢都是一次 關聯 並不僅僅是乙個查詢需要到兩個表的匹配才叫關聯,索引在mysql中,每乙個查詢,每乙個片段 包括子查詢,設定基於表單的select 都可能是關聯。所以,理解mysql如何執行關聯...