मैं नीचे के रूप में मेरी MySQL डेटाबेस में कुछ डेटा से एक दृश्य बनाने के लिए, प्रबंधित किया है:MySQL में "व्यू" को कैसे डिज़ाइन किया जाए, जिसके परिणाम मैं देख रहे हैं?
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>
बनाना इस दृश्य एक चुनौती थी, लेकिन नीचे दिए गए विवरण क्या मैं मुसीबत में नेविगेट करने हो रहा है:
मुझे इस दृश्य के साथ प्रत्येक खिलाड़ी को टीम जोड़ने की भी आवश्यकता है। क्योंकि मैच के लिए टीम का नाम प्राप्त करने के लिए 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>
परिणाम मैं अपने सिर में visualizing हूँ कुछ इस तरह है:
+----------+-----------------+----------------+-----------------+----------------+----------------+-------------------+
| 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 पर रखी है।
इसके अलावा, अगर कोई सोचता है कि बेहतर तरीका है तो मैं दृश्य कर सकता हूं, मुझे बताएं।
+1 दे देंगे! – kba