Menu
Coddy logo textTech

JOIN עצמי

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

צירופים עצמיים הם סוגים שונים של צירופים. עד עכשיו דיברנו על צירופים של כמה טבלאות, אבל בצירופים עצמיים מצרפים את אותה הטבלה לעצמה. דוגמה קלאסית לכך היא טבלה של עובדים.

employee_idemployee_namemanager_id
1Minke2
2Temur3
3Tatjana4
4Marinela 

לכל עובד יש מנהל, למעט המנהל הבכיר ביותר, וכל מנהל הוא גם עובד.

הבעיה: עבור כל עובד אנחנו רוצים לדעת את שם המנהל.

SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_id

אנחנו מבצעים צירוף בין אותה טבלה, אלא שפעם אחת אנחנו קוראים לה e1 ובפעם השנייה e2. הצירוף הוא בין השדות employee_id ו־manager_id.

התוצאה:

employee_idemployee_namemanager_name
1MinkeTemur
2TemurTatjana
3TatjanaMarinela
challenge icon

אתגר

בינוני

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

  • friends: id, name, friend_id

מצא זוגות של חברים שהם חברים הדדיים (חברות הדדית מתקיימת כאשר ה־friend_id של אדם א' מצביע על אדם ב' וגם ה־friend_id של אדם ב' מצביע על אדם א'). הצג את שמות שני החברים בשורה אחת. תן לעמודות את השמות friend1 ו־friend2.

הערה: כלול בתנאי WHERE את הקריטריון friend1.id < friend2.id כדי שלא ייכללו זוגות כפולים 

נסו בעצמכם

-- חברו את הטבלה לעצמה כדי ששורה אחת תוכל להציג שני אנשים שונים
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- השאירו רק את הזוגות שמצביעים זה על זה
WHERE ____ AND f1.id < f2.id;
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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