过滤表中的数据以获取所需条件

时间:2015-06-08 07:29:21

标签: php mysql stored-procedures

不要为标题烦恼,我无法通过确切的问题思考。请在下面找到我的问题。

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

下面是表格结构。

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

2 个答案:

答案 0 :(得分:2)

SELECT * FROM `table` WHERE (Make,Model) NOT IN 
(
    SELECT Make, Model FROM `table` WHERE Year = 2014
);

在这里小提琴:http://sqlfiddle.com/#!9/6ae10/1

答案 1 :(得分:1)

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

routerSocket.sendMore("serviceA".getBytes());
 routerSocket.send(data)