假设有一张表B,结构为:B(id,date,a,b,c),id,date 为联合主键,唯一确定一条记录。
表B的数据大约如下所示:
现分别查询:取到每个id中,最新的date所对应的a,b,c的各自不为空值。
SELECT
B.*
FROM
B,(
SELECT
max( date ) last_time,
id
FROM
B
WHERE
a IS NOT NULL
OR b IS NOT NULL
OR c IS NOT NULL
GROUP BY
id
) tmp_a
WHERE
B.id = tmp_a.id
AND B.date = tmp_a.last_time;