常用的多表連線查詢

2021-10-25 10:00:44 字數 1399 閱讀 3494

多表連線查詢的分類

內連線(inner join)

外連線左連線(left join)

右連線(right join)

內連線(inner join…on…)

mysql inner join子句將乙個表中的行與其他表中的行進行匹配,並允許從兩個表中查詢包含列的行記錄。

inner join子句是select語句的可選部分,它出現在from子句之後。

在使用inner join子句之前,必須指定以下條件:

首先,在from子句中指定主表。

其次,表中要連線的主表應該出現在inner join子句中。理論上說,可以連線多個其他表。 但是,為了獲得更好的效能,應該限制要連線的表的數量(最好不要超過三個表)。

第三,連線條件或連線謂詞。連線條件出現在inner join子句的on關鍵字之後。連線條件是將主表中的行與其他表中的行進行匹配的規則。

格式表1 inner join 表2 on 表1.列 = 表2.列

1例子:

select column_name(s)

from table_name1

inner join table_name2

on table_name1.column_name=table_name2.column_name12

34外連線左連線(left join…on…)

left join 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。

注釋:在某些資料庫中, left join 稱為 left outer join。

格式表1 left join 表2 on 表1.列 = 表2.列

1例子:

select column_name(s)

from table_name1

left join table_name2

on table_name1.column_name=table_name2.column_name12

34右連線(right join…on…)

right join與 left join相反,right join關鍵字會右表 (table_name2) 那裡返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。

注釋:在某些資料庫中, right join 稱為 right outer join。

格式表1 left join 表2 on 表1.列 = 表2.列1例:

select persons.lastname, persons.firstname, orders.orderno

from persons

right join orders

on persons.id_p=orders.id_p

order by persons.lastname

常用的多表連線查詢

內連線 inner join 返回的是兩個表中匹配連線條件的行的集合 1.等值內連線 2.非等值內連線 3.自然連線 natural join 自然連線 自動找相同字段相等的值作為連線條件,若沒有相同字段,則相當於做笛卡爾積運算,即dept表中的每一行都有test表中的每一行去匹配,返回 行數 行數...

多表查詢(連線查詢)

多表查詢 資料 是多個表,這時注意一定要書寫連線條件。當n個表連線,至少需要n 1個連線條件。注意 1 如何判斷兩個表之間有公共列?型別一致 寬度一致。列名不能作為判斷標準,列名不同也能是公共列 如 emp的empno和emp的mgr 2 如何避免二義性問題?給每個屬性加歸屬。3 注意使用表別名。表...

多表連線查詢

1 內連線 inner join 只返回兩個表中所有滿足連線條件的行 2 外連線outer join 除了返回兩個表中所有滿足連線條件的行之外,還返回 某個表中不滿足連線條件的行 3 交叉連線 產生笛卡爾積的連線 如果連線條件使用等號 就可以叫做相等連線 1 使用natural join關鍵字進行內...