Mysql 合并3个表,限制需要多个字段的1个表

Mysql 合并3个表,限制需要多个字段的1个表,mysql,Mysql,我已经调查了一段时间了。希望有人能提供一些见解。我有三张桌子。所有这些我都抓取了多个列,但是第三个我需要将输出限制为只显示最近的时间戳条目,但仍然显示多个列。 如果我有以下数据[请参阅SQL FIDLE]: fiddle是表1(用户)中的(姓名),(工作名称,年份)表2(工作),然后是表3(工作详细信息)中的(分数,时间戳)。所有这些都通过用户id链接在一起 我绝对不擅长MYSQL。我知道我错过了什么。。可能是一系列连接。通过这样做,我可以得到表1、表2和表3的一列: select a.id,

我已经调查了一段时间了。希望有人能提供一些见解。我有三张桌子。所有这些我都抓取了多个列,但是第三个我需要将输出限制为只显示最近的时间戳条目,但仍然显示多个列。 如果我有以下数据[请参阅SQL FIDLE]:

fiddle是表1(用户)中的(姓名),(工作名称,年份)表2(工作),然后是表3(工作详细信息)中的(分数,时间戳)。所有这些都通过用户id链接在一起

我绝对不擅长MYSQL。我知道我错过了什么。。可能是一系列连接。通过这样做,我可以得到表1、表2和表3的一列:

select a.id, a.name, b.job_name, b.years,
(select c.timestamp
 from job_details as c
 where c.user_id = a.id
 order by c.timestamp desc limit 1) score
from users a, job as b where a.id = b.user_id;
此时,我可以在前两列上获取多列数据,将第三列限制为一个值,并在最后一个时间戳上对该值进行排序

我的问题是:如何在限制中添加第二列?在fiddle中的示例中,我想将分数和时间戳添加到输出中

我希望输出为:

姓名、职务、年份、分数、时间戳。最后两列将仅是按最新时间戳排序的job_details中的最后一个条目

如果需要更多信息,请告诉我!谢谢你抽出时间! T

试试这个:

select a.id, a.name, b.job_name, b.years, c.timestamp, c.score
from users a 
INNER JOIN job as b ON a.id = b.user_id
INNER JOIN (SELECT  jd.user_id, jd.timestamp, jd.score
            FROM job_details as jd
            INNER JOIN (select user_id, MAX(timestamp) as tstamp
                   from job_details
                   GROUP BY user_id) as max_ts ON jd.user_id = max_ts.user_id
                                                AND jd.timestamp = max_ts.tstamp
            ) as c ON a.id = c.user_id
            ;

在这里发布所需的结果。只需编辑您的答案。@tToCspot,我看到一个用户有多个时间戳,在这种情况下,任何分数都可以?我已经编辑了指向更新的小提琴的链接@雷达,只要是最近的时间戳,任何分数都可以。对于那些可能无意中发现这一点并希望看到输出的人。谢谢你的帮助。