У меня есть таблица данные, которая выглядит как этогоВЫБРАТЬ новейшую запись с ненулевым значением нуля в одной колонке
id | keyword | count | date
1 | ipod | 200 | 2009-08-02
2 | ipod | 250 | 2009-09-01
3 | ipod | 150 | 2009-09-04
4 | ipod | NULL | 2009-09-07
Теперь то, что я после получения счета в строке, которая имеет самую новую дату, но имеет нет null счет. В этом случае строки 3 со счетом 150.)
например
SELECT `keyword`, `count` , max(`date`)
FROM `keywords`
WHERE keyword = "ipod"
AND `count` IS NOT NULL
GROUP BY keyword
Это возвратило правильную дату, но не правильный подсчет (возвращается 200). Я также попытался сделать левое соединение на себе.
SELECT `t1`.`keyword` , `t2`.`count` , max(`t1`.`id`)
FROM `keywords` `t1`
LEFT JOIN `keywords` `t2` ON `t1`.`id` = `t2`.`id`
WHERE `t1`.`keyword` = 'ipod'
AND `t1`.`count` IS NOT NULL
GROUP BY `t1`.`keyword`
И это действительно получить максимальный идентификатор, но он не оставил присоединиться на что, как я надеялся, и вернулся только 200.
Помощь?
вы бьете меня на этом – jitter
ARGH, так просто ... просто пытался добраться до фантазии. Благодаря! – Wizzard