T-sql-joining-tables

提供:Dev Guides
移動先:案内検索

T-SQL-テーブルの結合

MS SQL Serverの Joins 句は、データベース内の2つ以上のテーブルのレコードを結合するために使用されます。 JOINは、それぞれに共通の値を使用して2つのテーブルのフィールドを結合するための手段です。

次の2つのテーブルを検討してください、(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ステートメントでこれらの2つのテーブルを結合しましょう-

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 -これは、テーブルが2つのテーブルであるかのようにテーブルをそれ自体に結合するために使用され、MS SQL Serverステートメントで少なくとも1つのテーブルの名前を一時的に変更します。
  • CARTESIAN JOIN -2つ以上の結合されたテーブルからのレコードのセットのデカルト積を返します。