I've managed to create a view from some data in my MySQL database, as below:
mysql> CREATE VIEW phonelist AS
-> SELECT parent.parentID AS ParentID,
-> ParentPerson.firstName AS ParentFirstName,
-> ParentPerson.lastName AS ParentLastName,
-> ChildPerson.firstName AS PlayerFirstName,
-> ChildPerson.lastName AS PlayerLastName,
-> GuardianHomePhone.homeNumber AS GuardianHomePhone
-> FROM parent
-> JOIN player ON (parent.parentID IN (player.motherID, player.fatherID))
-> JOIN person AS ParentPerson ON (ParentPerson.personID = parent.parentID)
-> JOIN person AS ChildPerson ON (ChildPerson.personID = player.playerID)
-> JOIN addressDetails AS GuardianHomePhone ON (GuardianHomePhone.personID = parent.parentID);
Query OK, 0 rows affected (0.00 sec)
mysql> select * from phonelist;
+----------+-----------------+----------------+-----------------+----------------+-------------------+
| ParentID | ParentFirstName | ParentLastName | PlayerFirstName | PlayerLastName | GuardianHomePhone |
+----------+-----------------+----------------+-----------------+----------------+-------------------+
| 8 | Gregory | Peck | Michael | Peck | 034871234 |
| 9 | Laura | Peck | Michael | Peck | 034871234 |
| 10 | Martha | Petersen | Matt | Petersen | 034724321 |
| 10 | Martha | Petersen | Christopher | Petersen | 034724321 |
| 11 | Chris | Michaels | Richard | Michaels | 034791212 |
| 11 | Chris | Michaels | Shaun | Michaels | 034791212 |
| 12 | Nadine | Michaels | Richard | Michaels | 034791212 |
| 12 | Nadine | Michaels | Shaun | Michaels | 034791212 |
| 13 | Barry | Dackers | Harry | Dackers | 034871996 |
| 14 | Kevin | Mitchell | Daniel | Mitchell | 034742886 |
| 15 | Rebecca | Mitchell | Daniel | Mitchell | 034742886 |
+----------+-----------------+----------------+-----------------+----------------+-------------------+
11 rows in set (0.00 sec)
mysql>
Creating this view was a challenge, but the description below is what I am having trouble navigating around:
また、各プレイヤーが所属するチームをこのビューに追加する必要があります。チームの名前を一致させるには 4 つのテーブルを結合する必要があるため、それらを結合するのに苦労しています。以下のチームにプレーヤーを一致させる別のクエリを作成することができました。
mysql> select person.firstName, person.lastName, team.teamName
-> from person join player on person.personID = player.playerID
-> join teamAllocation on person.personID = teamAllocation.playerID
-> join team on teamAllocation.teamID = team.teamID;
+-------------+----------+------------+
| firstName | lastName | teamName |
+-------------+----------+------------+
| Michael | Peck | U10 Red |
| Christopher | Petersen | U10 Red |
| Richard | Michaels | U11 Orange |
| Shaun | Michaels | U9 Yellow |
| Matt | Petersen | U11 Orange |
| Harry | Dackers | U9 Yellow |
| Daniel | Mitchell | U9 Yellow |
+-------------+----------+------------+
7 rows in set (0.00 sec)
mysql>
私が頭の中で視覚化している結果は、次のようなものです。
+----------+-----------------+----------------+-----------------+----------------+----------------+-------------------+
| ParentID | ParentFirstName | ParentLastName | PlayerFirstName | TeamName | PlayerLastName | GuardianHomePhone |
+----------+-----------------+----------------+-----------------+----------------+----------------+-------------------+
| 8 | Gregory | Peck | Michael | U10 Red | Peck | 034871234 |
| 9 | Laura | Peck | Michael | U10 Red | Peck | 034871234 |
| 10 | Martha | Petersen | Matt | U11 Orange | Petersen | 034724321 |
| 10 | Martha | Petersen | Christopher | U10 Red | Petersen | 034724321 |
| 11 | Chris | Michaels | Richard | U11 Orange | Michaels | 034791212 |
| 11 | Chris | Michaels | Shaun | U9 Yellow | Michaels | 034791212 |
| 12 | Nadine | Michaels | Richard | U11 Orange | Michaels | 034791212 |
| 12 | Nadine | Michaels | Shaun | U9 Yellow | Michaels | 034791212 |
| 13 | Barry | Dackers | Harry | U9 Yellow | Dackers | 034871996 |
| 14 | Kevin | Mitchell | Daniel | U9 Yellow | Mitchell | 034742886 |
| 15 | Rebecca | Mitchell | Daniel | U9 Yellow | Mitchell | 034742886 |
+----------+-----------------+----------------+-----------------+----------------+----------------+-------------------+
誰かがこれについて私を助けることができれば、私はとても感謝しています. データを使用してクエリをテストしたい方のために、http://pastebin.com/S4iJyJUhにスキーマ (DDL) スクリプトとデータ (DML) スクリプトを (1 つの「貼り付け」に) 入れました。
また、ビューを行うためのより良い方法があると誰かが考えている場合は、お知らせください。