mysql - 将一个表与另一个表的最新行连接起来

标签 mysql sql join

我有 2 个 MySQL 表,包含以下信息:

table1(基本信息)

name | url
a    | www.a.com
b    | www.b.com
c    | www.c.com

table2(时间序列数据)

name | status | date
a    | ok     | 22/12/14
b    | ok     | 22/12/14
c    | ok     | 22/12/14
a    | ok     | 21/12/14
b    | ok     | 21/12/14
c    | ok     | 21/12/14
etc

我需要进行连接,以便将表 1 中的所有条目与表 2 中的最新条目连接起来。所以输出看起来像:

输出

name | url       | status | date
a    | www.a.com | ok     | 22/12/14
b    | www.b.com | ok     | 22/12/14
c    | www.c.com | ok     | 22/12/14

什么查询会给出上面的输出?

最佳答案

这是一个棘手的问题。您可以做的是加入第二个表两次 - 一次查找“最新”行,第二次获取实际数据。

SELECT t1.name, t1.url, t2.status, t2.date
FROM table1 t1
LEFT JOIN (SELECT name, max(date) as mx from table2 GROUP BY name) as X ON X.name = t1.name
LEFT JOIN table2 t2 0N t2.name = X.name AND t2.date = X.mx

我用名字加入。你通常会使用一些键(ids)

关于mysql - 将一个表与另一个表的最新行连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627314/

相关文章:

PHP 高级安全 session 类

mysql - 在 MySQL 中保存不预先存在的记录

sql - 如何在三个条件下连接两个表?

php - 修补基于时间的 sql 注入(inject)

sql - 数据透视 SQL 查询 - 在列中显示日期

mysql - 左外连接到生成的表?

mysql - 尝试 JOIN 两个派生表时出错

java - 在java应用程序中嵌入mysql数据库

php - 具有多个 ID 列和 php 的 Mysql 查询

php 脚本在手动调用时完全工作,但不会从 cron 作业运行