繁体   English   中英

使用INNER JOIN返回第二个表的最后一个条目

[英]Return the last entry of the 2nd table using INNER JOIN

这是我的第一个问题,因此我将尝试使其简单。

我的“ Pendencies系统”上有两个表格:

1st-主要信息(例如id,发件人,优先级...)
2日 -第一次表的日志(所有用户的变化,如标题,周期...)

我需要显示与第二张表的最后一个日志链接的每个未决记录,以获取更新的信息。

我怎么做?

提前致谢!

您需要创建一个子查询以从日志表中收集ID和最大值。 像下面这样的东西就足够了。

SELECT m.id, m.sender, m.priority, l2.*
FROM maininfo m
    INNER JOIN (SELECT id, MAX(PrimaryKey) AS Max
                FROM logs
                GROUP BY id) l ON m.id = l.id
    INNER JOIN logs l2 ON m.id = l2.id AND l.Max = l2.PrimaryKey
SELECT * FROM 
  Main JOIN
  (SELECT * FROM
     Logs where Logs.Id in 
        (SELECT MAX(Id) from Logs GROUP BY Logs.Main_Id)
  ) as newestLogs
  ON newestLogs.Main_Id = Main.Id

这应该可以工作

参见http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

分析如何最快地执行子表查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM