加入&列出每个ID的最后记录

时间:2013-06-28 15:14:55

标签: mysql

有两个表:

SELECT id,customer FROM records;
SELECT user_id,call_date FROM call_history

匹配列是:

records.id = call_history.user_id

call_history表包含客户的通话记录。 每个客户可以有一个或多个call_history行。

我需要找到他们上次打电话的时间(每个客户)。

对于前。 userid=1两次调用,6月16日和7月20日。结果必须在7月20日给我,但我需要从记录表中为所有客户做同样的事情。

这就是我尝试过的但它不起作用:

SELECT a.id, FROM_UNIXTIME(b.call_date,'%d/%m/%Y %H:%i') AS lastcall
FROM records a
INNER JOIN call_history b ON a.id=b.user_id
GROUP BY a.id ORDER BY b.call_date DESC;

谢谢。

1 个答案:

答案 0 :(得分:1)

这是否符合您的要求?

SELECT
    r.id,
    r.customer,
    MAX(ch.call_date) AS lastcall
FROM
    records AS r
INNER JOIN
    call_history AS ch ON ch.user_id = r.id
GROUP BY
    r.id,
    r.customer