MySQLでテーブルを接続するいくつかの方法

MySQLでテーブルを接続するいくつかの方法

MySQL テーブルでの接続方法は実は非常に簡単なので、ここではその特徴を簡単にリストします。

テーブル接続(JOIN)は、内部接続(JOIN/INNER JOIN)と外部接続(LEFT JOIN/RIGHT JOIN)に分けられます。

まず、このデモの 2 つのテーブルを見てみましょう。

mysql> SELECT * FROM 学生;
+------+----------+------+------+
| s_id | s_name | 年齢 | c_id |
+------+----------+------+------+
| 1 | シャオミン | 13 | 1 |
| 2 | 暁紅 | 41 | 4 |
| 3 | シャオシア | 22 | 3 |
| 4 | 暁剛 | 32 | 1 |
| 5 | シャオリ | 41 | 2 |
| 6 | 王武 | 13 | 2 |
| 7 | リシ | 22 | 3 |
| 8 | 張さん | 11 | 9 |
+------+----------+------+------+
セット内の行数は 8 です (0.00 秒)

mysql> SELECT * FROM クラス;
+------+---------+-------+
| c_id | c_name | カウント |
+------+---------+-------+
| 1 | 数学 | 65 |
| 2 | 中国語 | 70 |
| 3 | 英語 | 50 |
| 4 | 歴史 | 30 |
| 5 | 生物学 | 40 |
+------+---------+-------+
セット内の行数は 5 です (0.00 秒)

まず、テーブルを接続するための前提条件は、2 つのテーブルに同じ比較可能な列があることです。

1. 内部結合

mysql> SELECT * FROM student INNER JOIN class ON student.c_id = class.c_id;
+------+----------+------+------+-------+-------+-------+
| s_id | s_name | 年齢 | c_id | c_id | c_name | カウント |
+------+----------+------+------+-------+-------+-------+
| 1 | シャオミン | 13 | 1 | 1 | 数学 | 65 |
| 2 | xiaohong | 41 | 4 | 4 | 歴史 | 30 |
| 3 | xiaoxia | 22 | 3 | 3 | 英語 | 50 |
| 4 | 暁剛 | 32 | 1 | 1 | 数学 | 65 |
| 5 | xiaoli | 41 | 2 | 2 | 中国語 | 70 |
| 6 | wangwu | 13 | 2 | 2 | 中国語 | 70 |
| 7 | lisi | 22 | 3 | 3 | 英語 | 50 |
+------+----------+------+------+-------+-------+-------+
セット内の行数は 7 です (0.00 秒)

簡単に言うと、内部結合とは、2 つのテーブル内の条件を満たす行のすべてのデータを一緒に表示することです。つまり、条件が満たされない場合、テーブル A にはあってもテーブル B にはないデータ (またはその逆) は表示されません。

2. 外部結合

mysql> SELECT * FROM student LEFT JOIN class ON student.c_id = class.c_id;
+------+----------+------+------+-------+-------+-------+
| s_id | s_name | 年齢 | c_id | c_id | c_name | カウント |
+------+----------+------+------+-------+-------+-------+
| 1 | シャオミン | 13 | 1 | 1 | 数学 | 65 |
| 2 | xiaohong | 41 | 4 | 4 | 歴史 | 30 |
| 3 | xiaoxia | 22 | 3 | 3 | 英語 | 50 |
| 4 | 暁剛 | 32 | 1 | 1 | 数学 | 65 |
| 5 | xiaoli | 41 | 2 | 2 | 中国語 | 70 |
| 6 | wangwu | 13 | 2 | 2 | 中国語 | 70 |
| 7 | lisi | 22 | 3 | 3 | 英語 | 50 |
| 8 | 張さん | 11 | 9 | NULL | NULL | NULL |
+------+----------+------+------+-------+-------+-------+
セット内の行数は 8 です (0.00 秒)


mysql> SELECT * FROM student RIGHT JOIN class ON student.c_id = class.c_id;
+------+----------+------+------+-------+-------+-------+
| s_id | s_name | 年齢 | c_id | c_id | c_name | カウント |
+------+----------+------+------+-------+-------+-------+
| 1 | シャオミン | 13 | 1 | 1 | 数学 | 65 |
| 4 | 暁剛 | 32 | 1 | 1 | 数学 | 65 |
| 5 | xiaoli | 41 | 2 | 2 | 中国語 | 70 |
| 6 | wangwu | 13 | 2 | 2 | 中国語 | 70 |
| 3 | xiaoxia | 22 | 3 | 3 | 英語 | 50 |
| 7 | lisi | 22 | 3 | 3 | 英語 | 50 |
| 2 | xiaohong | 41 | 4 | 4 | 歴史 | 30 |
| NULL | NULL | NULL | NULL | 5 | 生物学 | 40 |
+------+----------+------+------+-------+-------+-------+
セット内の行数は 8 です (0.00 秒)

上記は、外部結合の左結合と右結合の 2 つのケースを示しています。これら 2 つはほぼ同じですが、唯一の違いは、左結合のメイン テーブルが左側のテーブルであり、右結合のメイン テーブルが右側のテーブルであることです。外部結合と内部結合の違いは、メイン テーブルのすべての行が表示され、他のテーブルにないメイン テーブルのデータが NULL に置き換えられることです。

要約する

これで、MySQL でテーブルを接続するいくつかの方法についての記事は終了です。MySQL テーブルを接続する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL での基本的な複数テーブル結合クエリのチュートリアル
  • mysql 複数テーブル接続削除関数の削除
  • MySQL の結合テーブルにインデックスを作成する方法
  • MySQL テーブル LEFT JOIN 左結合と RIGHT JOIN 右結合の例のチュートリアル
  • MySQL マルチテーブル結合クエリ例の説明
  • MySQL でのテーブル結合クエリの最適化に関する簡単なチュートリアル
  • mysql 3つのテーブルを接続してビューを作成する
  • MySQL データベースの詳細な説明 - 複数テーブル クエリ - 内部結合、外部結合、サブクエリ、相関サブクエリ
  • MySQL LEFT JOIN テーブル接続に関する高度な学習チュートリアル
  • MySQL マルチテーブル結合入門チュートリアル

<<:  Maven で tomcat8-maven-plugin プラグインを使用する詳細なチュートリアル

>>:  チェックボックスの選択またはキャンセルを実装するJavaScript

推薦する

FirefoxのWeb開発者を使用してWebページのスタイルを無効にする方法

前提条件: Web開発者プラグインがインストールされている操作手順: [ツール] -> [We...

Vueのドラッグ可能なコンポーネントであるVue Smooth DnDの使用方法の詳細な説明

目次紹介とデモAPI: コンテナ財産ライフサイクルコールバックイベントAPI: ドラッグ可能実際の戦...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

vue構成ファイルはルーティングとメニューインスタンスコードを自動的に生成します

目次前面に書かれたルータ.jsonルート生成メニュー生成効果要約する前面に書かれたルートを繰り返し記...

CSS で適応型ディバイダーを巧みに実装する N 通りの方法

分割線はウェブページでよく使われるデザインです。例えば、Zhihuのその他の回答をご覧ください。 こ...

入力テキストボックスの長さをコンテンツに応じて変更する方法

初め:コードをコピーコードは次のとおりです。 <input type="text&q...

Windows 10 で MySQL を完全にアンインストールして再インストールするための詳細な手順

さまざまな理由で、誰もが MySQL を再インストールする必要があると思います。 MySQL と Q...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

Nacos で MySQL8 を設定する方法

1. MySQLデータベースnacos_configを作成する2. データベース nacos_con...

MySQLでTEXT/BLOB型を使用する際の注意点を詳しく説明します

1. TEXTとBLOBの違いTEXT ファミリと BLOB ファミリの唯一の違いは、BLOB 型は...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

単一の MySQL テーブル内の行数が 500 万を超えてはいけないのはなぜですか?

今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...

mysql5.7でbinlogを使用してデータを復元する方法

ステップ1: MySQLでbinlogが有効になっていることを確認する '%log_bin%...

MySQLでトリガーを作成する方法

この記事の例では、参考のためにMySQLトリガーを作成するための具体的なコードを共有しています。具体...

DIV共通属性コレクション

1. 物件リストコードをコピーコードは次のとおりです。色: #999999 テキスト色フォントファミ...