0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

複数テーブルの結合

Last updated at Posted at 2023-09-07

はじめに

複数テーブルの結合についてのメモ

参考

テーブルの結合

結合条件が満たされた行を一つ一つ繋ぐこと

主な結合

JOIN

  • 使いどころ
    • 2つのテーブルの間で完全に一致する行だけを取得したい場合
  • INNER JOINともかけるが、省略されたJOINを用いることが多い
  • 繋ぐべき右表の行が複数あるとき、左表の行を複製して結合するため、元の左表の行数より増える
SELECT 
    orders.order_id, customers.customer_name 
FROM 
    orders 
JOIN customers 
    ON orders.customer_id = customers.customer_id;

LEFT JOIN

  • 使いどころ
    • 必ず左テーブルの情報は取得したい場合
    • 左テーブルに存在すれば、右テーブルにマッチする情報が存在しない場合でもNULLで取得する
  • LEFT OUTER JOINともかけるが、省略されたLEFT JOINを用いることが多い
SELECT
    employees.emp_id, employees.emp_name, departments.dept_name
FROM
    employees
LEFT JOIN departments 
    ON employees.emp_id = departments.emp_id;

RIGHT JOIN

  • 使いどころ
    • 必ず右テーブルの情報は取得したい場合
    • 右テーブルに存在すれば、左テーブルにマッチする情報が存在しない場合でもNULLで取得する
  • RIGHT OUTER JOINともかけるが、省略されたRIGHT JOINを用いることが多い
  • LEFT JOINの逆
SELECT
    users.name, orders.order_date, orders.order_amount
FROM
    users
RIGHT JOIN orders 
    ON users.user_id = orders.user_id;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?