TIL#51 DB)リレーショナル・データベースのJOIN演算子
JOIN
リレーショナル・データベースでは、重複データを回避するために、データを複数のテーブルに分割して格納します.このように分離されたデータから所望の結果を再取得するためには、複数のテーブルを組み合わせる必要がある.リレーショナル・データベースでは、「結合」(JOIN)演算子を使用して、関連する列の基準で行を連結します.LEFTJOINとINNERJOINは絶対2種類使用しており、残りの使用頻度は比較的低い.
結合の種類
Exampleテーブル
1. INNER JOIN
基本的にJOINは交点です左のテーブルを中心に右のテーブルを合わせます. 左テーブルの1つのレコードに複数の右テーブルレコードが一致すると、左テーブルレコードが複数回表示されます. 左は無条件に表示され、組み合わせたレコードが右にない場合はNULLが表示されます. 右側テーブルを中心に、左側テーブルを合わせます. LEFTJOINでは方向のみが変更されているため、このレコードは複数回表示されるか、NULLが表示される.
リレーショナル・データベースでは、重複データを回避するために、データを複数のテーブルに分割して格納します.このように分離されたデータから所望の結果を再取得するためには、複数のテーブルを組み合わせる必要がある.リレーショナル・データベースでは、「結合」(JOIN)演算子を使用して、関連する列の基準で行を連結します.LEFTJOINとINNERJOINは絶対2種類使用しており、残りの使用頻度は比較的低い.
結合の種類
Exampleテーブル
mysql> select * from people;
idnamephone1Mr Brown01225 7082252Miss Smith01225 8993603Mr Pullen01380 724040mysql> select * from property;
idsellingpeople_id1Old House Farm12The Willows33Tail Trees34The Melksham Florist35Dun Roamin41. INNER JOIN
基本的にJOINは交点です
mysql> select name, phone, selling
from people JOIN property
on people.id = property.people_id;
+-----------+--------------+----------------------+
| name | phone | selling |
+-----------+--------------+----------------------+
| Mr Brown | 01225 708225 | Old House Farm |
| Mr Pullen | 01380 724040 | The Willows |
| Mr Pullen | 01380 724040 | Tall Trees |
| Mr Pullen | 01380 724040 | The Melksham Florist |
+-----------+--------------+----------------------+
2. LEFT JOINmysql> select name, phone, selling
from people LEFT JOIN property
on people.id = property.people_id;
+------------+--------------+----------------------+
| name | phone | selling |
+------------+--------------+----------------------+
| Mr Brown | 01225 708225 | Old House Farm |
| Miss Smith | 01225 899360 | NULL |
| Mr Pullen | 01380 724040 | The Willows |
| Mr Pullen | 01380 724040 | Tall Trees |
| Mr Pullen | 01380 724040 | The Melksham Florist |
+------------+--------------+----------------------+
3. RIGHT JOINmysql> select name, phone, selling
from people RIGHT JOIN property
on people.id = property.people_id;
+-----------+--------------+----------------------+
| name | phone | selling |
+-----------+--------------+----------------------+
| Mr Brown | 01225 708225 | Old House Farm |
| Mr Pullen | 01380 724040 | The Willows |
| Mr Pullen | 01380 724040 | Tall Trees |
| Mr Pullen | 01380 724040 | The Melksham Florist |
| NULL | NULL | Dun Roamin |
+-----------+--------------+----------------------+
Reference
この問題について(TIL#51 DB)リレーショナル・データベースのJOIN演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@threeplef/TIL51-DB-관계형-데이터베이스의-JOIN-연산자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol