我有一张这样的桌子。
id Person year 1 4 2001 2 7 2001 3 5 2001 4 9 2001 5 4 2001 6 7 2002 7 2 2002 8 5 2002 9 4 2002 10 6 2002 11 6 2003 12 4 2003 13 9 2003 14 2 2004 15 3 2004 16 7 2004 17 5 2004 18 7 2004 19 9 2005 20 8 2005
我希望它可以打印那些'9'未成为其中一员的年份。
我认为这就像简单地把WHERE人!= 9 GROUP一样简单,但这不起作用,好像它忽略了我的where命令。
然而,当我说人= 9时,它确实有相反的作用 - 那么我只能得到他所参与的年份。
我试过加入桌子。但没有运气。
答案 0 :(得分:4)
尝试:
... WHERE year NOT IN (SELECT year WHERE person = 9) ...
答案 1 :(得分:0)
select distinct yr.year
from your_table as yr
left join
(
select distinct year
from your_table
where person=9
) as not_exist
on yr.year=not_exist.year
where not_exist.year is null;
OR
select distinct year from your_table
where year not in (select distinct year from your_table where person=9);