显示年人没有参与

时间:2011-01-30 13:11:24

标签: mysql

我有一张这样的桌子。

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时,它确实有相反的作用 - 那么我只能得到他所参与的年份。

我试过加入桌子。但没有运气。

2 个答案:

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