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テキストボックス内のテキストの垂直方向の中央を制御する

推薦する

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

CSS3 3Dクールキューブ変形アニメーションの実装

私はコーディングが大好きです。コーディングすると幸せになります!みなさんこんにちは、Counterで...

Linux echo テキスト処理コマンドの使用法と例

Linux ヘルプ ドキュメントでの echo の説明は、Python や Java などのプログラ...

WeChatアプレットはふるいを振る効果を実現

この記事では、WeChatアプレットの具体的なコードを参考までに共有します。具体的な内容は次のとおり...

MySQLの基礎知識学習ノート

データベースを表示show databases;データベースを作成するDATABASE データベース...

MySQL での order by の使用に関する詳細

目次1. はじめに2. 本文2.1 単一列のソート2.2 複数の列を並べ替える2.3 ソート方法2....

ランダム点呼 Web ページを実装するための JavaScript

JavaScriptは、参考のためにランダムな点呼Webページを作成します。具体的な内容は次のとお...

MySQL にテーブルデータを挿入するときに中国語の文字化けが発生する問題を解決する方法

1. 問題開発中に、他のデータベースから MySQL データベース テーブルにデータを挿入すると、次...

イントラネット侵入を実現するためのSSHポート転送

LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセ...

MySQL で binlog を使用する際のフォーマットの選択方法

目次1. binlogの3つのモード1.ステートメントレベルモード2. 行レベルモード3. 混合モー...

Python ベースの MySQL レプリケーション ツールの詳細な説明

目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...

Vue の計算プロパティの紹介

目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...

CSSアニメーション属性キーフレームの詳細な説明

コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

Bash の山括弧の深い理解 (初心者向け)

序文Bash には、ls、cd、mv などの重要な組み込みコマンドが多数あるほか、grep、awk、...