演習課題「テーブルを左結合して表示する」
右の環境には、MySQLからplayersテーブルのデータを表示するプログラムが、sql.phpに作成してあります。
このファイルを修正して、playersテーブルとjobsテーブルを左結合して、全データを表示してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#05:テーブルを結合してデータを取り出す
ここでは、複数のテーブルを結合して扱う方法を学んでいきます。SQLを使って、mydbデータベースの「players」テーブルの「job_id」と「jobs」テーブルの「id」を結合します。
テーブルの結合とは、重複したデータのテーブルを分割しておいて、必要に応じて、仮想的な1つの表として連結して扱う方法です。このようにテーブルを結合することを「リレーション」とか「連結」「関連付け」と呼ぶ場合もあります。
# 左結合
SELECT * FROM players LEFT JOIN jobs ON jobs.id = players.job_id
連結したテーブルから指定のカラムだけ取り出すため、playersテーブルのidカラムは、「players.id」と記述しています。jobsテーブルにもidカラムがあるので、このようにして区別している。
public_html/sql.php $sql = 'SELECT players.id, name, level, job_name FROM players LEFT JOIN jobs ON jobs.id = players.job_id';
$statement = $pdo->prepare($sql);
$statement->execute();
Webアプリ開発入門 PHP+MySQL編
https://paiza.jp/works/webapplicationlamp/primer
DB/SQL入門編
https://paiza.jp/works/sql/primer