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

MySQLのCONCAT()関数を別テーブルの列と組み合わせる方法

MySQLでは、あるテーブルの列に適用したCONCAT()関数の出力結果を、別のテーブルの列と組み合わせて取得することができます。このような処理を実現するには、MySQLのJOIN(結合)を利用します。

基本的な考え方

2つのテーブルを共通のキー(例えばID)で結合し、SELECT文の中で一方のテーブルの列に対してCONCAT()関数を適用しながら、もう一方のテーブルの列も同時に取得するという流れになります。

具体例

ここでは、次の2つのテーブルを例に説明します。

  • Student(学生)テーブル:学生のid、氏名(Name)、姓(Last_name)、住所、科目などの情報を持つ
  • Remarks(所見)テーブル:学生のidとコメント(Comment)を持つ

まず、remarksテーブルの中身を確認してみましょう。

mysql> Select * from remarks;
+------+-------------+
| ID   | Comment     |
+------+-------------+
| 1    | Good        |
| 2    | Excellent   |
| 15   | Average     |
| 20   | Good        |
| 21   | Outstanding |
+------+-------------+
5 rows in set (0.00 sec)

続いて、studentテーブルの「名前」と「姓」をCONCAT()関数で連結した結果と、remarksテーブルの「コメント」を組み合わせて取得するクエリがこちらです。

mysql> Select CONCAT(Name,' ' ,Last_Name ), Comment from student s, remarks r
-> Where s.id = r.id;
+------------------------------+-------------+
| CONCAT(Name,' ' ,Last_Name ) | Comment     |
+------------------------------+-------------+
| Gaurav Kumar                 | Good        |
| Aarav Sharma                 | Excellent   |
| Harshit Kumar                | Average     |
| Gaurav Rathore               | Good        |
| Yashraj Singh                | Outstanding |
+------------------------------+-------------+
5 rows in set (0.00 sec)

クエリのポイント

このクエリでは、FROM句で2つのテーブル(student と remarks)にそれぞれエイリアス sr を付けています。そしてWHERE句の s.id = r.id という条件により、両テーブルに共通する「id」を基準にテーブル同士を結合しています。

その結果、学生の氏名を連結した文字列と、その学生に対するコメントが1行ずつ対応付けられて表示されます。このように、JOINとCONCAT()関数を組み合わせることで、複数テーブルに分散したデータを柔軟に整形して取得できるのです。

  1. MySQLでテーブルの列(カラム)のデータ型を変更する方法

    ```html MySQLでは、ALTER TABLEコマンドとMODIFY COLUMN句を組み合わせることで、既存テーブルの列(カラム)のデータ型を簡単に変更できます。 現在のテーブル構造を確認する まず、DESCRIBE文を使って対象テーブルの現在の構造を確認しましょう。ここでは例として「Student」というテーブルを扱います。このテーブルでは「RollNo」列がint(11)(整数型)として定義されています。 mysql> DESCRIBE Student; +--------+-------------+------+-----+---------+-------+ | Fi

  2. MySQLで既存カラム名を変更する方法|ALTER TABLE CHANGE構文を実例付きで解説

    MySQLでは、ALTER TABLE文とCHANGE句を組み合わせることで、テーブル内の既存カラム(列)の名前を簡単に変更できます。この記事では、基本構文から実際の実行例まで、手順をわかりやすく解説します。 基本構文 ALTER TABLE table_name CHANGE old_column_name new_column_name datatype; 各要素の意味は以下の通りです。 table_name:変更したいカラムが含まれるテーブルの名前 old_column_name:現在設定されているカラム名(変更対象) new_column_name:新しく付けたいカラム名 datat