MySQL: Bir zaman dilimi içinde mevcut ancak başka bir zaman dilimi içinde sonuç alma

0 Cevap php

Ben otuz gün kapsayan verileri içeren bir veri kümesi yarattı. Im bundan önce daha önceki 28 gün içinde son 2 gün içinde ortaya çıktı ama henüz yeni veri öğeleri issolate çalışıyor.

  1. Ben test verileri üreten bir PHP komut dosyasını çalıştırın. (PHP ve MySQL test aynı zamanda geri dönüş)

  2. Ben buna karşı aşağıdaki sorguyu çalıştırın.

  3. Sonuçlar aproximetly yarım saat accuretly döndürülür. Bu sorguyu çalıştırırken Sonra kayıtları hiçbiri eşleşen gereken orada inanıyorum rağmen iade edilir.

Bu bariz 'sürüklenme' oluşmasına neden olur ben SQL yapıyorum herhangi bariz bir hata var mı?

Verileri Hakkında:

Komut günde bir 'ırk' üretir. Bu 10 'jokeys' sıralamasında ile rütbeli tablo doldurur. Test amaçlı komut ilk 10 içinde 2 yeni 'jokeys' ile önceki 2 gün yarışları üretir. Kalan 30 gün yarışları aynıdır.

Beklenen sonuçlar:

(Son iki gün ve daha önceki 28 sıralanır değil) bir yarış içinde sıralanır var iki jokeys isimleri.

SQL:

SELECT *, FROM_UNIXTIME(`race_timestamp`) as ts FROM `rankings`
WHERE `race_venue` = UNHEX(MD5('someplace'))
AND `jokey` IN
  (
SELECT `jokey`
FROM `rankings`
 WHERE `race_timestamp`
BETWEEN # Get results for races between now and two days ago
UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 DAY)) # timestamp two days ago
 AND
UNIX_TIMESTAMP() # time stamp now
   )
AND 
`jokey` NOT IN
(SELECT `jokey`
 FROM `rankings`
 WHERE `race_timestamp`
 BETWEEN  # Get results between 2 and 30 days ago
 UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY)) # time stamp 30 days ago
 AND
 UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 DAY)) # time stamp 2 days ago
 )
GROUP BY jockey;

Birisi yardımcı olabilir umuyoruz! Ben

0 Cevap