עזרה עם שאילתה בSQL - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה עם שאילתה בSQL


glory

Recommended Posts

יש לי שאלה כזאת:

להציג זוגות של אחים שיש להם הורים משותפים.

אני לא מבין איך אני בודק את הקשר בין ההורה לבין הילד לפי תעודת זהות..

זה הבסיס הנתונים

 Parent(parent_id,child_id).
Sex(person_id,sex).
Person(person_id,person_name,age).

תודה לעוזרים

קישור לתוכן
שתף באתרים אחרים

אני לא מבין מה הבעיה לבדוק מה הקשר בין הורה לילד

הרי יש לך טבלה מפורשת שאומרת מי ההורה ומי הילד שלו

אני לא מבין כל כך מתיאור שלך מה השאילתה אמורה לעשות

לפי מה שהבנתי צריך למצוא "משפחה" שיש בה שתי אחים בדיוק ,בנוסך צריך לשים לב שלכל ילד יכול להיות יותר מהורה אחד

select child_id

from parent

where parent_id in

(

select parent_id

from parent

group by parent_id

having count(child_id)=2

)

group by child_id;

בשאילתה הפנימית הוא בודק לאיזה הורים יש שתי ילדים בלבד

בחיצונית הוא בודק לאיזה מהילדים יש הורים שמופעים בתוצאה של האילתה הפנימית

ה-GROUP BY בסוף הוא למקרה שיש לשני אחים יותר מהורה אחד (במקרה כזה האחים יופעו פעמים ברשימה)

אולי כדאי להוסיף לשאילתה החיצונית OREDER BY על ההורים כדי שברשימה שתתקבל הריאשון והשני יהיו אחים

השלישי והרבעי וכן הלאה .כמובן שעם אתה רוצה להציג את שמות הילדים ולא את תעודות הזהות שלהם

אתה צריך לעשות JOIN לשאילתה התיצונית עם טבלת PERSON

---עריכה----

חשבתי קצת על מה ששאלת ונראה לי שהכוונה היתה פשוט להציג בזוגות את כל הילדים של הורה מסוים את זה אפשר לעשות ע"י SELF JOIN

משהוא כזה

SELECT a.parent_id, a.child_id, b.child_id

FROM Parent AS a, Parent AS b

WHERE (a.parent_id=b.parent_id) and (a.child_id<>b.child_id)

השאילתה לא מושלמת כי היא תראה לי כל הורה עם הילדים שלו פעמים ואם יש לו 3 ילדים אז 6 פעמים

(כל ילד יופיע פעם בצד ימין ופעם בצד שמאל).לא התאמצתי לפתור את זה כי עדין לא מבין בדיוק לאיזה

תוצאה אתה צריך להגיע

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...