2016-03-31 29 views
1

Tablodan, geçerli yıl içinde değiştirilmemiş satırları seçmekte zorlanıyorum. İşte ben vazgeçti sorgusuna bir örnektir:MYSQL :: En son olanlar olmadan tablodan satırları seçme

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

Evet önceki yıldır aynı araba ve türü olarak repetitve dizisi olacak unutmayın. Hepsini sonucumdan çıkarmak istiyorum. Örneğin araba => ferrari, type => F50, 2016 ve 2015 için değer kümesine sahip olabilir. 2016'da güncellenenlerin tümünü hariç tutmak istiyorum. Sadece bu otomobilleri ve değerlerin bu yıl güncellenmediği türleri seçin – braumer

cevap

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

Çalıştı ... neden katılma hakkında bile gittim. Cevabını çok takdir ediyorum. HAVING ifadesinde daha fazla okumam gerek. 120000 satırlık veriye nasıl karşılık vereceğini biliyor musun? Cevabınızı – braumer

+0

bana izin verdiği anda işaretleyeceğim 'year()' gibi bir işlev kullanmak indekslerden yararlanamaz. İndeksleri kullanmak için 'HAVING sum'u (değiştirilmiş_on '2016%' gibi) = 0' yerine deneyebilirsiniz. –

İlgili konular