26-11-2007, 17:11
|
|
|
|
חבר מתאריך: 18.05.04
הודעות: 2,110
|
|
בעייה קטנה עם שאילתא..
ברשותי 2 טבלאות:
Departments
שדות:
depart_id מפתח - קוד מחלקה
שם מחלקה -name
head- שם ראש המחלקה
Courses
שדות:
course_id - קוד קורס
name - שם קורס
type - סוג הקורס
תוכן:
DEPARTMENTS
DEPART NAME HEAD
------ --------------- ---------------
CS COMPUTER DR. ISRAEL
MT MATHEMATICS PROF. LEVY
BS BUSINESS DR. EYAL
CH CHEMISTRY PROF. DORON
COURSES
COURSE_ID COURSE_NAME TYPE POINTS DEPART_ID
--------- --------------- --------- ------ ---------
C-200 PROGRAMMING LAB 4 CS
C-300 PASCAL LAB 4 CS
C-55 DATABASE CLASS 3 CS
M-100 LINEAR ALGEBRA CLASS 3 MT
M-200 NUMERIC CLASS 3 MT
B-10 MARKETING CLASS 2 BS
B-40 OPERATIONS RES. SEMIN 3 BS
כפי ששמים לב, מחלקת כימיה לא קיימת ברשימת הקורסים.
קיבלתי תרגיל
- הצג את רשימת ראשי המחלקות, שם המחלקה בראשה הם עומדים ושמות הקורסים המועברים ע"י אותה מחלקה.
זה נקרא outer join, כי כללנו גם את השורה של מחלקת כימיה, כי בטבלת הקורסים לא מופיע קורס כלשהו של המחלקה.
ישבתי על זה ולא ממש הצלחתי. הגעתי לזה
SELECT a.head,a.name,b.name FROM departments a,courses b
WHERE a.depart_id=b.depart_id OR a.depart_id<>ALL(SELECT depart_id FROM courses)
order by a.head
אני צריך ש CHEMISTRY יופיע פעם אחת ושבקורס יופיע NULL
הפתרון צריך להיות ללא פקודת JOIN..
אשמח אם מישהו יוכל לעזור לי. תודה.
_____________________________________
I sit and I stare
I know that I'll soon go mad
In my solitude
I'm praying
Dear lord above
|