sql使用带有连接的子查询中的select

时间:2013-03-19 05:09:32

标签: sql select join

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

http://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial

2 个答案:

答案 0 :(得分:0)

子查询并不是真正需要的,而是一个简单的自联接。通过使用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'

Click Here for screenshot

答案 1 :(得分:0)

select distinct yr 
from nobel 
where subject='Physics' 
    and yr not in ( select yr from nobel where subject='Chemistry')