T-SQL - 表連線



MS SQL Server 的連線子句用於組合資料庫中兩個或多個表中的記錄。連線是一種透過使用每個表共有的值來組合兩個表中的欄位的方法。

考慮以下兩個表,(a) CUSTOMERS 表如下所示:

ID  NAME       AGE       ADDRESS             SALARY 
1   Ramesh     32        Ahmedabad           2000.00 
2   Khilan     25        Delhi               1500.00 
3   kaushik    23        Kota                2000.00 
4   Chaitali   25        Mumbai              6500.00 
5   Hardik     27        Bhopal              8500.00 
6   Komal      22        MP                  4500.00 
7   Muffy      24        Indore              10000.00 

(b) 另一個表是 ORDERS,如下所示:

OID  DATE                       CUSTOMER_ID        AMOUNT 
100  2009-10-08 00:00:00.000    3                  1500.00 
101  2009-11-20 00:00:00.000    2                  1560.00 
102  2009-10-08 00:00:00.000    3                  3000.00 
103  2008-05-20 00:00:00.000    4                  2060.00 

讓我們在 SELECT 語句中連線這兩個表,如下所示:

SELECT ID, NAME, AGE, AMOUNT 
   FROM CUSTOMERS, ORDERS 
   WHERE  CUSTOMERS.ID = ORDERS.CUSTOMER_ID 
OR 
SELECT A.ID, A.NAME, A.AGE, B.AMOUNT 
   FROM CUSTOMERS A inner join  ORDERS B on A.ID = B.Customer_ID 

以上命令將產生以下輸出。

ID   NAME      AGE    AMOUNT 
2    Khilan    25     1560.00 
3    kaushik   23     1500.00 
3    kaushik   23     3000.00 
4    Chaitali  25     2060.00 

可以注意到,連線是在 WHERE 子句中執行的。可以使用多個運算子來連線表,例如 =、<、>、<>、<=、>=、!=、BETWEEN、LIKE 和 NOT;它們都可以用於連線表。但是,最常見的運算子是等號。

MS SQL Server 連線型別 -

MS SQL Server 中有不同型別的連線 -

  • 內部連線 (INNER JOIN) - 當兩個表中都有匹配項時返回行。

  • 左連線 (LEFT JOIN) - 返回左側表中的所有行,即使右側表中沒有匹配項。

  • 右連線 (RIGHT JOIN) - 返回右側表中的所有行,即使左側表中沒有匹配項。

  • 全連線 (FULL JOIN) - 當其中一個表中存在匹配項時返回行。

  • 自連線 (SELF JOIN) - 這用於將一個表連線到自身,就好像該表是兩個表一樣,在 MS SQL Server 語句中臨時重新命名至少一個表。

  • 笛卡爾積連線 (CARTESIAN JOIN) - 返回兩個或多個連線表中記錄集的笛卡爾積。

廣告

© . All rights reserved.