主キーと外部キーを結びつけて、複数テーブルに分かれたレコードを統合することを結合という。
これは、リレーショナルデータベースの本当の強みでもある。
今回は、内部結合を取り上げる。
それでは、実際に操作してみよう。
まずは、mysqlクライアントを起動しよう。
PS C:\Users\vinta> mysql -u myusr -p
Enter password: *****
続いて、basicデータベースに移動しよう。
mysql> USE basic;
Database changed
内部結合でレコードを表示しよう
scheduleテーブルとcategoryテーブルを内部結合して、レコードを取得しよう。
以下の通り、入力しよう。
なお、このbasicデータベースには、scheduleテーブルとcategoryテーブルにはあらかじめレコードが登録してあるものとする。
mysql> SELECT schedule.subject,schedule.pdate,schedule.ptime,
-> category.cname,schedule.memo FROM schedule
-> INNER JOIN category ON schedule.cid = category.cid
-> WHERE schedule.uid = 'yyamada';
以下の通り、表示されれば、成功である。
mysql> SELECT schedule.subject,schedule.pdate,schedule.ptime,
-> category.cname,schedule.memo FROM schedule
-> INNER JOIN category ON schedule.cid = category.cid
-> WHERE schedule.uid = 'yyamada';
+-----------------+------------+----------+--------+------------------+
| subject | pdate | ptime | cname | memo |
+-----------------+------------+----------+--------+------------------+
| WINGS会議 | 2024-06-25 | 15:00:00 | 会議 | 配布プリント持参 |
| MySQL本原稿提出 | 2024-07-31 | 17:00:00 | 提出 | NULL |
| WINGSメンバ面接 | 2024-08-05 | 13:00:00 | その他 | NULL |
| D企画打ち上げ | 2024-08-21 | 18:00:00 | その他 | NULL |
+-----------------+------------+----------+--------+------------------+
4 rows in set (0.13 sec)
今回は、ここまでである。mysqlクライアントを終了しよう。
mysql> exit
Bye
PS C:\Users\vinta>
(参考)3ステップでしっかり学ぶ MySQL入門 [改訂第3版] 山田奈美(著)山田祥寛(監修)技術評論社
コメント