我正在嘗試使用Oracle執行SQL分區,因此應該返回所有User_ID
將SAME類作爲特定ID教授的信息。執行分區的SQL查詢
兩個表的表結構,我的工作:
SELECT DISTINCT instructor_id, class_code, class_num
FROM CLASS
WHERE NOT EXISTS (
(SELECT instructor_id, class_code, class_num FROM CLASS)
MINUS
(SELECT instructor_id, class_code, class_num
FROM CLASS
WHERE instructor_id =
(SELECT HUMAN.id
FROM HUMAN
WHERE first = 'Foo'
AND last = 'Bar')))
的樣本數據
HUMAN
id first last
1 foo bar
2 John Doe
INSTRUCTOR
human_id location
1 US
2 CA
CLASS
instructor_id class_code class_num
1 CS 999
1 MA 111
1 DE 222
2 CS 999
2 MA 111
2 DE 222
3 CS 999
4 CS 999
查詢應:
HUMAN(id, first, last)
INSTRUCTOR(human_id, location) -- PK(id, location)
CLASS(instructor_id, class_code, class_num) -- PK(instructor_id, class_code, class_num)
查詢我目前正在工作返回instructor_id 2
,因爲它是唯一指示相同類別的人instructor_id 1
儘管插入數據以匹配此場景,但我已經返回任何行。
是什麼「同一類」的意思是 - 相同的類代碼或相同的類的數量,或兩者?在你的示例中,這兩列之間存在一對一的關係,但大概在現實生活中,情況並非如此(可能是class_num反映了課程代碼和學期?或者位置? - 否則爲什麼都有?) – mathguy
相同的類的意思,class_code和class_num – hello