Mysql 中的左右連線問題

2021-07-05 18:20:06 字數 1199 閱讀 3234

最近碰到sql左右連線問題,查閱了有關資料,現在做一些總結:

笛卡爾積

左連線右連線區別

1. 笛卡爾積:在數學中,兩個集合x和y的笛卡兒積(cartesian product),又稱直積,表示為x × y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。

設a,b為集合,用a中元素為第一元素,b中元素為第二元素構成有序對,所有這樣的有序對組成的集合叫做a與b的笛卡爾積,記作axb.

笛卡爾積的符號化為:

a×b=

例如,a=, b=,則

a×b=

b×a=

2. 左連線:上面講了笛卡爾積,那麼左連線和這個有什麼關係,就是以左表(a)為主表,右表(b)以on條件來匹配;

select  * from  a left  join  b on a.id=b.id;
表a

表b

當執行 select * from a left join b on a.id=b.id 結果如下:

結果是:以左表(a)為基準,顯示右表(b)匹配到的資訊,對於左表中沒有匹配到的,顯示為null;

3.右連線:右連線當然就是以右表作為基準表了;

當執行 select * from a right join b on a.id=b.id 結果如下:

結果顯示 :以右表(b)左右基準,b表只有3個記錄,a表有4個記錄,

a匹配b,以a為基準,所以只顯示三條記錄

4.區別:根據上面的結果,就能發現左右連線就是關於,以左表或者右表來作為基準,來進行匹配顯示的過程;

如果你想以左表來作為基準顯示就用左表,反之,亦是如此!根據業務需求來改變!

mysql左右連線

左連線即左表中的資料必須顯示。左 右連線查詢實際上是指定以哪個表的資料為準。有兩個表 table1 table id name password 1 aaa a 2 bbb b 3 ccc c table 左連線sql語句 select table1.id,table1.name,table2.po...

Mysql 左右連線

例項 list pdo fetchall select a.id,a.name,a.time,m.id,m.field from tablename user as a left join tablename group as m on a.id m.replyid 左連線 以左表為標準 到右表尋找...

mysql 右連線 mysql 左右連線

舉例說明 假設您有兩個表,每個表只有乙個列,表資料如下 a b1 3 2 43 5 4 6注意,1,2 是a表唯一的,3,4 是公共的,並且 5,6 是b表獨有的 內連線內連線是a表的所有行交上b表的所有行得出的結果集 select from a inner join b on a.a b.b se...