我想知道是否有可能找到所有教授'数学'并且不教'英语'的教师,没有使用聚合或子查询。
我的常规方法是使用子查询/聚合来查找所有教授英语和使用的人:教师不在哪里(从课程中选择讲师='英语')或按教师分组,课程有计数(*) > 1.
//在
下面测试输入和输出CREATE TABLE testTable (instructor TEXT, course TEXT);
INSERT INTO testTable values ('John Doe', 'Math');
INSERT INTO testTable values ('John Doe', 'English');
INSERT INTO testTable values ('John Doe', 'Physics');
INSERT INTO testTable values ('Jane Doe', 'Math');
INSERT INTO testTable values ('John Smith', 'Physics');
INSERT INTO testTable values ('John Smith', 'Math');
INSERT INTO testTable values ('Janice Smith', 'English');
解决方案应该是:
Jane Doe
John Smith
答案 0 :(得分:3)
您可以使用join
s
select tm.instructor
from t tm left join
t te
on tm.instructor = te.instructor and te.subject = 'English'
where tm.subject = 'Math' and te.instructor is null;