T-SQL 連接表 聯(lián)表查詢 多表查詢

2018-12-14 11:31 更新

MS SQL Server Joins子句用于合并數(shù)據(jù)庫中兩個或多個表的記錄。 JOIN是通過使用每個表共有的值來組合兩個表的字段的手段。

請參考具有以下記錄的兩張表,(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 

上述命令將產(chǎn)生以下結(jié)果集:

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子句中執(zhí)行的。 可以使用幾個運(yùn)算符來連接表,例如=,<,>,<>,<=,> =,!=,BETWEEN,LIKE和NOT; 它們都可以用于連接表。 然而,最常見的運(yùn)算符是等號。

MS SQL Server連接類型:

   在MS SQL Server中有不同類型的連接 --

  • INNER JOIN -當(dāng)兩個表中都有匹配項(xiàng)時返回行。

  • LEFT JOIN -返回左側(cè)表中的所有行,即使右表中沒有匹配項(xiàng)。

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

  • FULL JOIN -在其中一個表中存在匹配項(xiàng)時返回行。

  • SELF JOIN -這用于將表連接到自身,就像該表是兩個表,臨時重命名MS SQL Server語句中的至少一個表。

  • CARTESIAN JOIN -返回兩個或多個聯(lián)接表中的記錄集的笛卡爾乘積。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號