MySQL 1対多のリレーション SQL文

本日は、MySQLを使って、「1対多」のリレーションの関係を持ったテーブルで
SQL文を使って操作します。

テーブルの構造は、下記のようになっています。
拠点テーブルと部署テーブルがあります。
拠点テーブルには、IDと拠点名(office)があります。
部署テーブルには、IDと部署名(department)と外部キーとしてoffice_idを持っています。

MySQL上のテーブル構造です。
officeテーブル

departmemtテーブル

最初にselect分でそれぞれのテーブルのすべてのレコードを表示します。
select * from office;

 

select * from departments;

では、left joinを使い下記のような結果が表示できるようにSQL文を作成します。
表示したい結果は下記です。

拠点名, 部署名

SQL文と結果です。
select a.id ,a.office, b.department
 from offices a
 left join departments b
 on a.id = b.office_id

まとめ

以上、1対多のリレーション間のテーブルをleft joinを使って結合したsql文でした。

タイトルとURLをコピーしました