Menu
Coddy logo textTech

סיכום – JOIN עצמי

חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 47 מתוך 72.

challenge icon

אתגר

קשה

טבלאות ועמודות זמינות:

  • friends: id, name, friend_id

עבור כל אדם בטבלת החברים, מצא את כל קשרי החבר של חבר שיש לו. קשר של חבר של חבר מתקיים כאשר אדם א׳ הוא חבר של אדם ב׳, שבתורו הוא חבר של אדם ג׳. הצג את הקשרים האלה בשלוש עמודות:

  • friend1: האדם ההתחלתי
  • friend2: החבר הישיר שלו
  • friend3: החבר של החבר שלו

כללים:

  • אל תכלול מקרים שבהם friend3 הוא אותו אדם כמו friend1
  • מיין את התוצאות לפי השם של friend1 בסדר יורד

דוגמה: אם Alice חברה של Bob, ו-Bob חבר של Carol, אז Alice-Bob-Carol יהיה קשר תקף של חבר של חבר.

נסו בעצמכם

-- חברו את הטבלה לעצמה פעמיים כדי ששורה אחת תכיל שרשרת של שלושה אנשים
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- הסירו את השרשראות שחוזרות לאדם שממנו התחילו
WHERE ____
ORDER BY ____ DESC;

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: SQL אונליין