sql使用select in子查询和联接

sql使用select in子查询和联接,sql,select,join,Sql,Select,Join,我正在尝试回答SQLZoo.net网站上的问题8。这里是链接。这应该很简单,但我认为我只是过度考虑了自己。以下是链接: 实际上并不需要子查询,而是一个简单的自连接。通过使用LEFT JOIN将表与自身连接起来,您可以获得所需的结果,但是在连接表的过程中,您需要在on子句中筛选化学主题的年份 SELECT DISTINCT a.yr FROM nobel a LEFT JOIN nobel b ON a.yr = b.yr AND b.subject

我正在尝试回答SQLZoo.net网站上的问题8。这里是链接。这应该很简单,但我认为我只是过度考虑了自己。以下是链接:


实际上并不需要子查询,而是一个简单的自连接。通过使用LEFT JOIN将表与自身连接起来,您可以获得所需的结果,但是在连接表的过程中,您需要在on子句中筛选化学主题的年份

SELECT  DISTINCT a.yr
FROM    nobel a
        LEFT JOIN nobel b
            ON a.yr = b.yr AND b.subject = 'Chemistry'
WHERE   b.yr IS NULL AND
        a.subject = 'Physics'
select distinct yr 
from nobel 
where subject='Physics' 
    and yr not in ( select yr from nobel where subject='Chemistry')