【发布时间】:2020-03-17 07:01:31
【问题描述】:
我有 2 张桌子:
1) STUDENTS-> primery key- id (int)
- firstName
- lastName
- city
2) GRADES-> primery key- studentID (int)
primery key- courseID ('e' or 'h' or 'm')
- grade
我正在尝试选择参加“m”课程但未参加“h”或“e”课程的学生姓名。
我的解决办法是:
SELECT * FROM STUDENTS S
INNER JOIN GRADES G1 ON S.ID=G1.STUDENTID
INNER JOIN GRADES G2 ON G1.COURSEID !=G2.COURSEID AND G1.STUDENTID = G1.STUDENTID
WHERE (G1.COURSEID = 'Math ' AND NOT (G2.COURSEID = 'Eng ' OR G2.COURSEID = 'Heb'))
知道有什么问题吗?
【问题讨论】:
-
你应该在 GRADES 表中设置 StudentID,作为外键
标签: sql oracle inner-join