私が持っているスキーマに基づいてビューを構築しようとしています。しかし今、私はどこから始めればよいか完全に迷っています。私のビューは、プレーヤーの(リンクしている)保護者、保護者の電話番号、現在プレーしているチームに関する情報で構成されている必要があります。誰かが正しい道にたどり着くのを手伝ってくれたら本当にありがたいです。添付画像はリンク先をご覧ください
ありがとう!
Im hoping for this kind of result
+----------+--------------+-------------+----------+-----------+-----------+------------+
|guardianID|guardian.fName|guardianlName|Contact |playerfName|playerlName|teamName |
+----------+--------------+-------------+----------+------------+-----------+-----------+
| 1 |Dora | Kruger |0288235556|Daphne |Kruger |Taeiri Eels |
| 2 |Tonia | Wesley |0204156513|Brigitta |Wesley |Southern Mag|
| 3 |Shanene | Genovese |0211915599|Stefan |Genovese |Kaikorai |
| 4 |Jacob | Jefferson |0282316812|Yvonne |Jefferson |Pirate Skull|
| 5 |Tamika | Longstaff |0264217492|Todd |Longstaff |Zingari |
+----------+--------------+------------+-----------+-----------+-----------+------------+
私はこれらの次のデータを持っています
====PERSON TABLE====
+----------+--------------+-------------+----------+-----------+
|personID |firstName |lastName |addressID |photo |
+----------+--------------+-------------+----------+-----------+
| 1 |Dora | Kruger |1 |NULL |
| 2 |Daphne | Kruger |2 |NULL |
| 3 |Tonia | Wesley |3 |NULL |
| 4 |Brigitta | Wesley |4 |NULL |
| 5 |Shanene | Genovese |5 |NULL |
| 6 |Stefan | Genovese |6 |NULL |
| 7 |Jacob | Jefferson |7 |NULL |
| 8 |Yvibbe | Jefferson |8 |NULL |
| 9 |Tamika | Longstaff |9 |NULL |
| 10|Todd | Longstaff |10 |NULL |
+----------+--------------+------------+-----------+-----------+
====PHONE TABLE====
+----------+--------------+
|phoneID |primaryContact|
+----------+--------------+
| 1 |0288235556 |
| 2 |0204156513 |
| 3 |0211915599 |
| 4 |0282316812 |
| 5 |0264217492 |
+----------+--------------+
====GUARDIAN TABLE====
+----------+--------------+-------------+----------+
|guardianID|personID |phoneID |email |
+----------+--------------+-------------+----------+
| 1 | 1 | 1 |@ya.com |
| 2 | 3 | 2 |@yy.com |
| 3 | 5 | 3 |@ll.com |
| 4 | 7 | 4 |@pp.com |
| 5 | 9 | 5 |@no.com |
+----------+--------------+------------+-----------+
====PLAYER TABLE====
+----------+--------------+-------------+--------------+
|playerId |personID |schoolID |dob |
+----------+--------------+-------------+--------------+
| 1 | 2 | 1 |2008-04-06 |
| 2 | 4 | 2 |2011-11-19 |
| 3 | 6 | 3 |2011-01-07 |
| 4 | 8 | 4 |2006-01-01 |
| 5 | 10 | 5 |2004-04-06 |
+----------+--------------+-------------+--------------+
====FAMILY TABLE====
+----------+--------------+
|playerID |guardianID |
+----------+--------------+
| 1 |1 |
| 2 |2 |
| 3 |3 |
| 4 |4 |
| 5 |5 |
+----------+--------------+
====TEAM TABLE====
+----------+------------------+-------------+--------------+--------------+
|teamID |teamName |year |minAge |maxAge |
+----------+------------------+-------------+--------------+--------------+
| 1 | Taieri Eels | 2015-01-01 |5 |6 |
| 2 | Southern Magpies| 2014-01-01 |7 |8 |
| 3 | Kaikorai | 2016-01-01 |7 |10 |
| 4 | Pirate Skulls | 2014-01-01 |11 |12 |
| 5 | Zingari | 2013-01-01 |12 |16 |
+----------+------------------+-------------+--------------+--------------+
====TEAM ALLOCATION TABLE==== // allocating team for each player
+----------+--------------+
|teamID |playerID |
+----------+--------------+
| 2 |1 |
| 5 |2 |
| 1 |3 |
| 3 |4 |
| 4 |5 |
+----------+--------------+
更新: ガーディアン テーブルは、プレイヤーのガーディアンを識別するためのものです。関係は多対多であるため、ファミリー テーブルを使用してプレイヤーとその保護者をリンクしようとしていました。ただし、クエリを記述しようとして苦労しています。私はそれが3つのテーブル結合であり、エイリアスを使用すると思っていましたか? しかし、私はそれを機能させることができません。
SELECT p1.firstName AS guardianFName, p1.lastName AS guardianLName,
p2.firstName AS playerFName, p2.lastName AS playerLName
from person AS p1, person as p2
join guardian on
person.personID = guardian.personID join
family on guardian.guardianID = family.guardianID
join player on
person.personID = player.personID join
family on player.playerID = family.playerID;
私はこのようないくつかのバリエーションを試しました
DDL および DML スクリプトはhttp://pastebin.com/euVanc2eにあります。これは、私たちが持っているデータでクエリをテストするのを手伝いたい人のためにあります。