JOIN 是根據兩個或多個表(Tables)中的列之間的關係,從這些表中查詢資料。筆者很多時候要面對更新資料庫內的資料,而且數量非常大,需要使用 JOIN 的功能作對比來更新。
SQL JOIN 的類型 |
在 Access 中 JOIN 的類型 |
Table A – Company Information |
Table B – Company Product Qty |
Inner Join 可以應付大部份的結合查詢需求,連接操作如求兩個表的交集,Inner Join 有兩種寫法,差異在把結合條件設定在 「WHERE」子句或「FROM」子句中。每當相同的欄位中有相符的值時,合併來自兩個資料表的記錄。
INNER JOIN 運算由下列各部分組成:
部分
|
描述
|
table1, table2
|
結合記錄的來源資料表名稱。
|
field1, field2
|
連接欄位的名稱。若非數值,則欄位必須是相同的資料類型,且儲存相同類型的資料,但名稱不必相同。
|
compopr
|
任何關聯性比較運算子:"="、"<"、">"、"<="、">=" 或
"<>"。
|
SQL 查詢:SELECT A.COMPANY, B.PARTS, B.QTY_2018 FROM A INNER JOIN B ON (A.[COMPANY_CODE]=B.[COMPANY_CODE]) AND (A.PARTS=B.PARTS);
INNER JOIN 查詢結果 |
使用 Left Join 運算建立左方外部聯結。左方外部聯結包含來自兩個資料表的第一個(左方:Table A)的所有記錄為基礎,即使第二個(右方:Table B)資料表中的記錄沒有相符的值。Left Join 的含義就是求兩個表的交集外加左表剩下的數據。 。
LEFT JOIN 運算由下列各部分組成:
部分
|
描述
|
table1, table2
|
結合記錄的來源資料表名稱。
|
field1, field2
|
連接欄位的名稱。欄位必須有相同資料類型且含有相同種類的資料,但是不必有相同名稱
|
compopr
|
任何關聯性比較運算子:"="、"<"、">"、"<="、">=" 或
"<>"。
|
SQL 查詢:SELECT A.COMPANY_CODE, A.COMPANY, B.PARTS, B.QTY_2018 FROM A LEFT JOIN B ON (A.COMPANY_CODE=B.COMPANY_CODE) AND (A.PARTS=B.PARTS);
Access LEFT JOIN查詢結果,即使右表中沒有匹配,也從左表返回所有的行。 |
使用 Right Join 運算建立右方外部聯結。右方外部聯結包含來自兩個資料表的第二個(右方:Table B)的所有記錄為基礎,即使第一個(左方:Table A)資料表中的記錄沒有相符的值。Right Join 就是求兩個表的交集外加右表剩下的數據。
RIGHT JOIN 運算由下列各部分組成:
部分
|
描述
|
table1, table2
|
結合記錄的來源資料表名稱。
|
field1, field2
|
連接欄位的名稱。欄位必須有相同資料類型且含有相同種類的資料,但是不必有相同名稱
|
compopr
|
任何關聯性比較運算子:"="、"<"、">"、"<="、">=" 或
"<>"。
|
SQL 查詢:SELECT A.COMPANY_CODE, A.COMPANY, B.PARTS, B.QTY_2018 FROM A RIGHT JOIN B ON (A.PARTS=B.PARTS) AND (A.COMPANY_CODE=B.COMPANY_CODE);
Access RIGHT JOIN 查詢結果,即使左表中沒有匹配,也從右表返回所有的行 |
2018年 8月 28日 天氣報告
氣溫:25.2度 @ 19:40
相對濕度:百分之 94%
天氣:雨
沒有留言:
張貼留言