我有一个看起来像这样选择带有非空值的最新记录在一列
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
现在表中的数据是什么,我以后越来越具有最新的日期,但有一个行的数不是空数。在这种情况下,第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`
这的确得到了最大ID,但它并没有离开,加入到像我希望,只返回200
帮助?
您对 – jitter 2009-11-16 05:21:07
哎呀打我,就这么简单......只是试图去幻想。谢谢! – Wizzard 2009-11-16 05:29:20