2016-03-31 34 views
1

我正在努力從我的表中選擇沒有被修改當前年份的行。這裏是我放棄了對查詢的例子:MYSQL ::從表中選擇沒有最近的行

SELECT * FROM test_cars INNER JOIN 
(SELECT car as c, type as t FROM test_cars 
WHERE YEAR(modified_on)='2016' GROUP BY c,t) as tbl 
ON tbl.c!=car AND tbl.t!=type 
WHERE value !='' 
GROUP BY car,type 
+0

是的,請注意,有repetitve行作爲同一輛車和類型往年。我想從我的結果中排除所有這些。例如car => ferrari,type => F50可以爲2016年和2015年設置價值。我想排除2016年已更新的所有車型,只選擇汽車和今年未更新價值的車型 – braumer

回答

1
SELECT car, type 
FROM test_cars 
GROUP BY car, type 
HAVING sum(YEAR(modified_on) = 2016) = 0 
+0

哇,實際上工作......我爲什麼甚至去連接。我非常感謝你的回答。我需要閱讀更多關於HAVING聲明。你知道它將如何對120000行數據進行處理。我會盡快給你答覆 – braumer

+0

使用像'year()'這樣的函數不能利用索引。要使用索引,您可以嘗試使用'HAVING sum(modified_on like'2016%')= 0'。 –