> ②結合 – ネットワークエンジニアチュートリアル

②結合

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

結合

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

次の2つの表を考えてみましょう。

表1 – 顧客表

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | kodak    |  32 | Ahmedabad |  2000.00 |
|  2 | nikon    |  25 | Delhi     |  1500.00 |
|  3 | suzuki   |  23 | Kota      |  2000.00 |
|  4 | nissan   |  25 | Mumbai    |  6500.00 |
|  5 | tometo   |  27 | Bhopal    |  8500.00 |
|  6 | nakag    |  22 | MP        |  4500.00 |
|  7 | toshiki  |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

表2 – 注文表

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 |           3 |   3000 |
| 100 | 2009-10-08 00:00:00 |           3 |   1500 |
| 101 | 2009-11-20 00:00:00 |           2 |   1560 |
| 103 | 2008-05-20 00:00:00 |           4 |   2060 |
+-----+---------------------+-------------+--------+

さて、次に示すように、SELECTステートメントでこれらの2つのテーブルを結合しましょう。

SQL> SELECT ID, NAME, AGE, AMOUNT
   FROM CUSTOMERS, ORDERS
   WHERE  CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

これにより、次の結果になります

+----+----------+-----+--------+
| ID | NAME     | AGE | AMOUNT |
+----+----------+-----+--------+
|  3 | suzuki   |  23 |   3000 |
|  3 | suzuki   |  23 |   1500 |
|  2 | nikon    |  25 |   1560 |
|  4 | nissan   |  25 |   2060 |
+----+----------+-----+--------+

ここでは、結合がWHERE節で実行されることが注目されます。=、<、>、<>、<=、> =、!=、BETWEEN、LIKE、NOTなどの複数の演算子を使用して表を結合することができます。それらはすべてテーブルを結合するために使用できます。しかし、最も一般的な演算子は=です

SQLにはさまざまな種類の結合が用意されています。

  • INNER JOIN – 両方のテーブルに一致するものがあるときに行を返します。
  • LEFT JOIN – 右のテーブルに一致するものがなくても、左のテーブルからすべての行を返します。
  • RIGHT JOIN – 左のテーブルに一致するものがなくても、右のテーブルからすべての行を返します。
  • FULL JOIN – いずれかのテーブルに一致するものがある場合に行を返します。
  • SELF JOIN – テーブルが2つのテーブルであるかのように、テーブルを自身に結合するために使用され、SQL文で少なくとも1つのテーブルの名前を一時的に変更します。
  • CARTESIAN JOIN – 2つ以上の結合テーブルからレコードセットのデカルト積を返します。

これらの結合のそれぞれについて詳細に説明します。

前のページ①制約

次のページ③SQL-UNION句演算子

 

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:2017-09-19 更新日:

執筆者: