【PostgreSQL】inner joinとwhereを同時に使う方法を解説

PostgreSQL

PostgreSQLでinner joinとwhereを使ってデータを取得する方法

PostgreSQLでinner join句とwhere句を使ってデータを取得するには、以下の構文でSQLクエリを書けば可能です。

SELECT * FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name
WHERE table1.column_name = some_value;

実際に具体的なデータを用意し、それをもとにinner joinとwhereを使ってデータを取る方法を見ていきましょう。

前提となるテーブルはこちら

1、usersテーブル

idnameagegender
1田中 太郎30male
2佐藤 次郎25male
3鈴木 花子36female
4山田 一郎40male
5渡辺 美奈子44female
6松本 真理子27female

2、ordersテーブル

iduser_idproduct_idquantityordered_at
11152022-12-01
21232022-12-03
32322022-12-04
42412022-12-05
53142022-12-06
63222022-12-07
74332022-12-08
84442022-12-09
95512022-12-10
106522022-12-11

3、productsテーブル

idnameprice
1商品A1000
2商品B1500
3商品C2000
4商品D2500
5商品E3000

具体的なコード例

例1: 年齢が40以上の人の注文情報を取得する場合

これは、usersテーブルとordersテーブルをJOINし、age >= 40 のレコードを取得するSQLクエリで実現できます。

SELECT orders.* 
FROM orders 
JOIN users ON orders.user_id = users.id 
WHERE users.age >= 40

例2: 年齢が20代の人が注文した商品データを取得する場合

これは、ordersテーブルとusersテーブルをJOINし、productsテーブルをJOINし、ageが20代のレコードを取得するSQLクエリで実現できます。

SELECT products.name 
FROM products 
INNER JOIN orders 
ON products.id = orders.product_id 
INNER JOIN users 
ON orders.user_id = users.id 
WHERE users.age BETWEEN 20 AND 29;

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