我正在开发一个网络应用程序,我有一个包含两个表的数据库。其中之一称为实体,另一个称为事件。它是一对多关系,其中事件表中有许多实体。事件表有一个与之关联的日期,我想根据某些实体 ID 提取结果,但我只想提取最近的事件(按日期)。所以基本上,我只想要每个实体一次返回。 mysql 中一定有一种方法可以做到这一点,而无需用 php 解析出数据。我想让应用程序尽可能快。任何帮助将不胜感激。
最佳答案
猜测字段名称...
SELECT
e.*, a.*
FROM
(SELECT
MAX(ActivityID) ActivityID,
EntityID
FROM
Activity
GROUP By
EntityID) maxActivity
INNER JOIN Activity a
ON maxActivity.ActivityID = a.ActivityID
INNER JOIN Entity e
ON e.EntityID = a.EntityID
或者,如果 ID 并不总是最新的,而您确实想要日期(假设两个事件不能共享同一日期)
SELECT
e.*, a.*
FROM
(SELECT
MAX(Date) Date,
EntityID
FROM
Activity
GROUP By
EntityID) maxActivity
INNER JOIN Activity a
ON maxActivity.Date = a.Date
and maxActivity.EntityID = a.EntityID
INNER JOIN Entity e
ON e.EntityID = a.EntityID
关于php - 从 mysql 中的一对多连接中提取最新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888834/