• למודעות דרושים בתחום SQL לחצו כאן.
בנושא: SQL
0 תגובות
0 תגובות
השאלה:
מה זה Self Join? הסבר בעזרת דוגמא.
התשובה:
Self Join זה כמו כל Join אחר, מלבד העובדה ששני עותקים של אותה טבלה יתחברו בשאילתה.
הנה דוגמא: טבלת העובדים שמכילה שורות לעובדים רגילים ולמנהלים.
אז, כדי למצוא את המנהלים של כל העובדים, אתה צריך לעשות Self Join.
דוגמאת קוד מצורפת:
CREATE TABLE emp
(
empid int,
mgrid int,
empname char(10)
)
INSERT emp SELECT 1,2,'Vyas'
INSERT emp SELECT 2,3,'Mohan'
INSERT emp SELECT 3,NULL,'Shobha'
INSERT emp SELECT 4,2,'Shridhar'
INSERT emp SELECT 5,2,'Sourabh'
SELECT t1.empname [Employee], t2.empname [Manager]
FROM emp t1, emp t2
WHERE t1.mgrid = t2.empid
הנה שאילתה מתקדמת שמשתמשת ב LEFT OUTER JOIN שאפילו מחזיר עובדים בלי מנהלים(סופר בוסים)
דוגמאת קוד מצורפת:
SELECT t1.empname [Employee], COALESCE(t2.empname, 'No manager') [Manager]
FROM emp t1
LEFT OUTER JOIN
emp t2
ON
t1.mgrid = t2.empid
הנה דוגמא: טבלת העובדים שמכילה שורות לעובדים רגילים ולמנהלים.
אז, כדי למצוא את המנהלים של כל העובדים, אתה צריך לעשות Self Join.
דוגמאת קוד מצורפת:
CREATE TABLE emp
(
empid int,
mgrid int,
empname char(10)
)
INSERT emp SELECT 1,2,'Vyas'
INSERT emp SELECT 2,3,'Mohan'
INSERT emp SELECT 3,NULL,'Shobha'
INSERT emp SELECT 4,2,'Shridhar'
INSERT emp SELECT 5,2,'Sourabh'
SELECT t1.empname [Employee], t2.empname [Manager]
FROM emp t1, emp t2
WHERE t1.mgrid = t2.empid
הנה שאילתה מתקדמת שמשתמשת ב LEFT OUTER JOIN שאפילו מחזיר עובדים בלי מנהלים(סופר בוסים)
דוגמאת קוד מצורפת:
SELECT t1.empname [Employee], COALESCE(t2.empname, 'No manager') [Manager]
FROM emp t1
LEFT OUTER JOIN
emp t2
ON
t1.mgrid = t2.empid
לשאלה זו אין כרגע תגובות.
| תגובה לשאלה מספר : 508 בנושא : SQL |
![]() |
||||
| שם מלא : | כתובת אימייל : | ||||
| תוכן תגובה : | |||||
הוסף תגובה
שלח תגובה



