没有Aggregate或SubQuery的查询

时间:2018-02-21 00:38:11

标签: sql sqlite

我想知道是否有可能找到所有教授'数学'并且不教'英语'的教师,没有使用聚合子查询。

我的常规方法是使用子查询/聚合来查找所有教授英语和使用的人:教师不在哪里(从课程中选择讲师='英语')或按教师分组,课程有计数(*) > 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

1 个答案:

答案 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;