MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JOINキーワードを使用したMySQL内部結合(INNER JOIN)クエリの書き方

MySQLにおける内部結合(INNER JOIN)のクエリは、JOINキーワードを使って記述することもできます。通常「INNER JOIN」と書くところを、単に「JOIN」とするだけで同じ意味になります。ここでは、以下のようなデータを持つ2つのテーブル「tbl_1」と「tbl_2」を例に、その使い方を解説します。

サンプルテーブルのデータ

まず、結合に使用する2つのテーブルの中身を確認しておきましょう。

mysql> Select * from tbl_1;
+----+--------+
| Id | Name   |
+----+--------+
| 1  | Gaurav |
| 2  | Rahul  |
| 3  | Raman  |
| 4  | Aarav  |
+----+--------+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+----+---------+
| Id | Name    |
+----+---------+
| A  | Aarav   |
| B  | Mohan   |
| C  | Jai     |
| D  | Harshit |
+----+---------+
4 rows in set (0.00 sec)

JOINキーワードによる内部結合クエリ

次のクエリでは、キーワードJOINを使用して、2つのテーブルを内部結合しています。

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+----+----+
| id | id |
+----+----+
| 4  | A  |
+----+----+
1 row in set (0.00 sec)

実行結果のポイント

この結果からわかるように、「Aarav」という名前は両方のテーブルに存在しているため、その行だけが結合されました。これが内部結合の特徴で、両方のテーブルに一致するデータが存在する行のみが結果として返されます。

ON句による結合条件の指定

上記のクエリでは、結合条件(結合述語)をONキーワードの後に記述しています。つまり「tbl_1.name = tbl_2.name」という条件に一致する行同士が結合される仕組みです。

なお、JOINと書いてもINNER JOINと明示的に書いても、MySQLではまったく同じ動作になります。コードの可読性やチーム内のコーディング規約に応じて、どちらの表現を使っても問題ありません。

  1. MySQLでIDが最大の行を取得する方法:ORDER BYとLIMIT OFFSETの活用テクニック

    MySQLでIDが最も大きい(最大値の)行を取得したい場面は多くあります。例えば、最新のレコードや直近に登録された従業員情報を取り出すケースなどが該当します。そんなときに役立つのが、ORDER BY句とLIMIT OFFSETを組み合わせた手法です。基本構文IDの降順に並べ替え、先頭の1行だけを取得することで、IDが最大の行を選択できます。構文は以下の通りです。SELECT * FROM テーブル名 ORDER BY カラム名 DESC LIMIT 1 OFFSET 0;ORDER BY 〜 DESCで降順ソートを行い、LIMIT 1 OFFSET 0で最初の1行のみを返します。OFFSETを

  2. MySQLでNULLの値を検索・取得する方法:IS NULL演算子の使い方

    MySQLでは、NULLが格納されているレコードを取得したい場合、通常の比較演算子(=)ではなく、IS NULL演算子を使用します。これは、NULLは「値が存在しない」ことを表す特殊な状態であり、= NULLのような等価比較では正しく判定できないためです。この記事では、実際にテーブルを作成し、IS NULLを使ってNULLのレコードを取得する手順を解説します。1. サンプルテーブルの作成まず、従業員名と年齢を格納するテーブルを作成します。mysql> create table DemoTable ( EmployeeName varchar(100), EmployeeA