根据所需条件过滤 table 中的数据

Filtering data in a table for a required condition

别在意标题,具体问题我想不通。请在下面找到我的问题。

我试图以这样的方式过滤掉数据,结果集不应包含与给定年份对应的品牌和型号。比如我给的是2014,结果集不应该包含"Acura - ILX and BMW - X5"。它应该 return 剩余品牌和型号。

下面是 table 结构。

Id  | Make    | Model     | Year
---------------------------------
1   | Acura   | ILX       | 2012
2   | Acura   | ILX       | 2013
3   | Acura   | ILX       | 2014
4   | Acura   | ILX       | 2015
5   | Acura   | RL        | 2012
6   | Acura   | RL        | 2013
7   | Acura   | RL        | 2015
8   | BMW     | X5        | 2012
9   | BMW     | X5        | 2013
10  | BMW     | X5        | 2014
11  | BMW     | Q7        | 2011
12  | BMW     | Q7        | 2012
13  | BMW     | Q7        | 2013
14  | BMW     | Q7        | 2015

给出2014年的预期结果。

Id  | Make    | Model     | Year
---------------------------------    
5   | Acura   | RL        | 2012
6   | Acura   | RL        | 2013
7   | Acura   | RL        | 2015   
11  | BMW     | Q7        | 2011
12  | BMW     | Q7        | 2012
13  | BMW     | Q7        | 2013
14  | BMW     | Q7        | 2015
SELECT * FROM `table` WHERE (Make,Model) NOT IN 
(
    SELECT Make, Model FROM `table` WHERE Year = 2014
);

Fiddle 这里:http://sqlfiddle.com/#!9/6ae10/1

我的同事帮助我找出了针对上述情况的快速响应。查询是

select make,model,group_concat(year ORDER BY year ASC) as yearList from apd_cars 
group by model,make 
having yearList NOT like '%2014%' 
order by make,model;