我有 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/