0

所以我现在有一个 PHP 脚本可以从两个表中提取数据……我怎么能从第三个表中提取数据,但只能从第三个表中获取最新记录?

这是我现在的查询:

  SELECT c.firstname, c.lastname, r.reminder, r.cid, a.timestamp, a.practitioner FROM `records` AS r
  LEFT JOIN `clients` AS c ON (
    r.cid = c.id
  )
  LEFT JOIN `appointments` AS a ON (
    r.calid = a.id
  );

所以现在要做的是从“记录”中获取 r.cid(客户 ID)和 r.reminder,然后使用该 r.cid 从“客户”中获取 c.firstname、c.lastname,然后最终得到一个.timestamp, a.practitioner from 'appointments'... 我需要做的是在这个查询中添加一个名为'logs'的第三个表并只提取最新的条目(时间戳列 - 实际上只提取这个列因为我'我只对每个用户 (cid) 的日期感兴趣。

所以第三个表只有 cid(与其他表相同 - 用户 ID)、时间戳和消息。我只需要从这个表中为每个用户提取最新的时间戳。

4

1 回答 1

1

加入获取每个用户的最大日志时间戳的子查询。

  SELECT c.firstname, c.lastname, r.reminder, r.cid, a.timestamp, a.practitioner, l.log_timestamp 
  FROM `records` AS r
  LEFT JOIN `clients` AS c ON (
    r.cid = c.id
  )
  LEFT JOIN `appointments` AS a ON (
    r.calid = a.id
  )
  LEFT JOIN (
    SELECT cid, MAX(timestamp) AS log_timestamp
    FROM logs
    GROUP BY cid) AS l ON l.cid = r.cid
于 2019-05-16T17:33:23.607 回答