4種類のMySQL接続とマルチテーブルクエリの詳細な説明

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリ

ビルド環境:

テーブルt_emp(を作成する
	id int 主キー、 
	名前varchar(20),
	部門ID int
);
テーブル t_dept を作成します(
	id int 主キー、
	名前varchar(20)
);
t_dept(id, name) に値(1, 'デザイン部門') を挿入します。
t_dept(id, name) に値(2, '開発部門') を挿入します。
t_dept(id, name) に値(3, 'テスト部門') を挿入します。
t_emp(id, name, deptId) に値(1, '张三', 1) を挿入します。
t_emp(id, name, deptId) に値(2, 'Li Si', 2) を挿入します。
t_emp(id, name, deptId) に値(3, '王五', 0) を挿入します。
# ps: 便宜上、t_emp テーブルはテーブル A、t_dept テーブルはテーブル B と呼ばれます。

目次

1. 内部結合 (A ∩ B)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-0cqsICkR-1619189927045)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175111307.png)]

SELECT * FROM t_emp e INNER JOIN t_dept d ON e.deptId = d.id; 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-YVymu987-1619189927047)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175234304.png)]

2. LEFT JOIN 左外部結合(A all)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-860jyRX1-1619189927049)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175441802.png)]

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId = d.id; 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-PXjhiYYa-1619189927051)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175712415.png)]

3. RIGHT JOIN 右外部結合 (B すべて)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-s0OFZKj1-1619189927054) (9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175813118.png)]

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id; 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-bx74QMwd-1619189927056)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805175959230.png)]

4. FULL JOIN 完全外部結合 (A + B)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-b125K8dF-1619189927057) (9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805180116571.png)]

SELECT * FROM t_emp e LEFT JOIN t_dept d 
ON e.deptId = d.id UNION 
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id; 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-qLSli8R9-1619189927058) (9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805180416613.png)]

5. LEFT JOIN を除く (A - B、つまりテーブル A に固有) +

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-NQFvqcNu-1619189927060)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805180611367.png)]

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId= d.id WHERE d.id は null です。 

ここに画像の説明を挿入

6. 右結合を除く(B - A、つまりBテーブルのみ)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-0Ak37mwF-1619189927062)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805181033398.png)]

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id は null です。 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-7czqoOP5-1619189927062)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805181145897.png)]

7. OUTER 除外結合(A と B は互いに一意です)

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-9YEEUSOD-1619189927063)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/20190805181255259.png)]

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId = d.id WHERE d.id は null です
連合
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id は null です。 

[外部リンク画像の転送に失敗しました。ソースサイトにはアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-dzO9X4QC-1619189927064)(9mysql_multi-table query_inner join_right join_left join_nested query.assets/2019080518143030.png)]

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • mysql サブクエリと結合テーブルの詳細
  • MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較
  • MySQL の結合クエリとサブクエリの問題
  • MySQL マルチテーブル結合クエリの詳細な説明
  • MySQL 接続クエリの基本から高度なものまで

<<:  Linux カーネルの copy_{to, from}_user() に関する考察

>>:  CSSを使用してHTMLテキストボックス内のテキストの垂直方向の中央を制御する

推薦する

Vueベースのビデオプレーヤーの実装例

既存のビデオ プレーヤーがニーズを満たせない場合は、ビデオを自分でカプセル化する必要があります。ビデ...

ネイティブjsはショッピングカートのロジックと機能を実装します

この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...

Tomcat でのサーブレットの作成と実装に関する深い理解

1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール現在、Linux x86アーキテクチャのオンラインインストールのみを試し...

mysql8.0.18 で winx64 をインストールするための詳細なチュートリアル (画像とテキスト付き)

MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...

ubuntu20.04 LTSにdockerをインストールする方法

ゼロ: 古いバージョンをアンインストールするDocker の古いバージョンは、docker、dock...

xshell を使用して VMware で Linux に接続する方法 (2 つの方法)

【序文】最近、ITOO の試験システムのストレステストを行いたいので、自分のコンピュータに Lin...

最も完全な 50 の MySQL データベース クエリ演習

このデータベース クエリ ステートメントは、インターネット上の 50 個のデータベース クエリ練習問...

CSS クリアフロートクリア:both サンプルコード

今日はフロートのクリアについてお話します。フロートのクリアについてお話する前に、フロートとは何かを理...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

CentOS 8にJenkinsをインストールする方法

CentOS 8 に Jenkins をインストールするには、root アカウントまたは sudo ...

Vue カプセル化コンポーネント ツール $attrs、$listeners の使用

目次序文$属性例: $listeners (公式説明)使用シナリオ要約する序文複数レベルのコンポーネ...

Dockerにlogstashをインストールする詳細な手順

docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...

HTMLの基本構文は、HTMLを学び始めたばかりの人にとって便利です。

1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...