别为题目操心,我想不透确切的问题。请在下面找到我的问题。
我正试图筛选出这样的数据:结果集不应包含与给定年份对应的品牌和型号。例如,如果我给出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

最佳答案

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

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

关于php - 筛选表中的数据以符合所需条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30703393/

10-09 16:12