JOIN
ジョイン(データベースとSQL)
意味 複数テーブルの結合
JOINとは?
JOINは、SQLの機能の一つで、複数のテーブルを結合して一つの結果セットを作成するために使用します。これにより、異なるテーブルに分散されているデータを組み合わせて、より複雑な情報を取得できます。
JOINの具体的な使い方
INNER JOINの例
$query = 'SELECT users.name, orders.product, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id
ORDER BY orders.order_date DESC
LIMIT 5';
$stmt = $pdo->query($query);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "{$row['name']}さんが{$row['order_date']}に{$row['product']}を注文しました。\n";
}
👇出力結果
田中さんが2023-06-01にiPhoneを注文しました。
佐藤さんが2023-05-30にMacBookを注文しました。
鈴木さんが2023-05-29にAirPodsを注文しました。
高橋さんが2023-05-28にiPadを注文しました。
渡辺さんが2023-05-27にApple Watchを注文しました。
この例では、usersテーブルとordersテーブルをINNER JOINで結合しています。ユーザーの名前、注文した商品、注文日を取得し、注文日の新しい順に5件表示しています。INNER JOINは両方のテーブルで一致するデータのみを返すため、注文のあるユーザーのみが結果に含まれます。
LEFT JOINを使用した集計の例
$query = 'SELECT categories.name AS category, COUNT(products.id) AS product_count
FROM categories
LEFT JOIN products ON categories.id = products.category_id
GROUP BY categories.id
ORDER BY product_count DESC';
$stmt = $pdo->query($query);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "{$row['category']}カテゴリには{$row['product_count']}個の商品があります。\n";
}
👇出力結果
電子機器カテゴリには15個の商品があります。
食品カテゴリには12個の商品があります。
衣類カテゴリには8個の商品があります。
書籍カテゴリには5個の商品があります。
家具カテゴリには0個の商品があります。
この例では、LEFT JOINを使用してcategoriesテーブルとproductsテーブルを結合し、各カテゴリーに属する商品の数を集計しています。LEFT JOINを使用することで、商品が登録されていないカテゴリーも結果に含まれます。GROUP BY句で各カテゴリーごとに集計し、ORDER BY句で商品数の多い順にソートしています。
JOINに関するよくある質問
JOINが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのJOINやPDOStatement::fetchAll()、外部キー、HAVING、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
PHPを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!