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...