MySql 學習筆記 連線表(JOIN)

2021-09-21 17:30:03 字數 1501 閱讀 5856

inner join內連線:

將乙個表中的行與其他表中的行進行匹配

select

column_list

from

t1inner join t2 on join_condition1

inner join t3 on join_condition2

where where_conditions;

由於連線使用的是同乙個列,所以可以使用這種格式:

select

productcode, productname, textdescription

from

products

inner join productlines using (productline);

left join

當使用left join子句將t1表加入t2表時,如果來自左表t1的行與基於連線條件(t1.c1 = t2.c1)的右表t2匹配,則該行將被包含在結果集中。

如果左表中的行與右表中的行不匹配,則還將選擇左表中的行並與右表中的「假」行組合。「假」行對於select子句中的所有相應列都包含null值。

換句話說,left join子句允許您從匹配的左右表中查詢選擇行記錄,連線左表(t1)中的所有行,即使在右表(t2)中找不到匹配的行也顯示出來,但使用null值代替。

下圖可幫助您視覺化left join子句的工作原理。 兩個圓圈之間的交點是兩個表中匹配的行,左圓的剩餘部分(白色部分)是t1表中不存在t2表中任何匹配行的行。 因此,左表中的所有行都包含在結果集中。

同上,查詢相同列的時候使用using(列名)更加方便

左連線可以用於查詢兩個表中不匹配的行

cross join:

從連線的表返回行的笛卡兒積

假設使用cross join連線兩個表。 結果集將包括兩個表中的所有行,其中結果集中的每一行都是第乙個表中的行與第二個表中的行的組合。 當連線的表之間沒有關係時,會使用這種情況。

要特別注意的是,如果每個表有1000行,那麼結果集中就有1000 x 1000 = 1,000,000行,那麼資料量是非常巨大的。

selct * from t1 cross join t2 where t1.id = t2.id

也可以用inner join,left join進行自連線

ArcEngine dbf表之間連線Join

arcengine dbf表之間連線join 上乙個部落格寫了要素圖層屬性表與.dbf之間的連線join,但是若想兩個.dbf表之間連線,再用那種方法就不行了,因此這裡呼叫gp工具實現.dbf表之間的連線join。gp工具實在是強大,能解決你的問題,但是卻不能讓你知道到底如何實現的,連線之後開啟.d...

MySQL學習筆記 連線

a table a b table b 1 笛卡爾積 為a,b兩個表產生笛卡爾積 x y x y 的笛卡爾積為,個人理解 即將a表所有的屬性和b表中的所有屬性進行合併,且每條記錄都產生乙個這樣的關係。select from a cross join b orselect from a,b2 自然連線...

mysql表連線sql表 MYSQL表連線查詢

表連線查詢 一 交叉連線 笛卡爾積 查詢teacher和course表中所有的資料 select from teacher,course select name,courseid,course.id,cname from teacher,course where teacher.courseid c...