Mysql 如何在同一个表中使用内部联接

Mysql 如何在同一个表中使用内部联接,mysql,sql,inner-join,self-join,Mysql,Sql,Inner Join,Self Join,我有一个表名为tnx_line_transfer。模式如下 现在我想生成如下输出 输出 我尝试下面的查询,但它没有显示正确的输出。这个问题是什么 SELECT main_tbl.operator_id, main_tbl.production_line FROM tnx_line_transfer main_tbl INNER JOIN ( SELECT operator_id, max(date) AS max_date

我有一个表名为tnx_line_transfer。模式如下

现在我想生成如下输出

输出

我尝试下面的查询,但它没有显示正确的输出。这个问题是什么

SELECT
    main_tbl.operator_id,
    main_tbl.production_line
FROM
    tnx_line_transfer main_tbl
INNER JOIN (
    SELECT
        operator_id,
        max(date) AS max_date
    FROM
        tnx_line_transfer
    GROUP BY
        operator_id
) temp ON main_tbl.operator_id = temp.operator_id

如果有其他简单的解决方案,请告诉我。提前谢谢。

您错过了加入
date
列的
max\u date

SELECT main_tbl.operator_id,
       main_tbl.production_line
FROM   tnx_line_transfer main_tbl
       INNER JOIN (SELECT operator_id,
                          Max(`date`) AS max_date
                   FROM   tnx_line_transfer
                   GROUP  BY operator_id) temp
               ON main_tbl.operator_id = temp.operator_id
                  AND main_tbl.max_date = temp.`date` --here
另一种方法是使用
子查询

SELECT main_tbl.operator_id,
       main_tbl.production_line
FROM   tnx_line_transfer main_tbl
WHERE  `date` = (SELECT Max(`date`)
               FROM   tnx_line_transfer temp
               WHERE  main_tbl.operator_id = temp.operator_id) 
Row\u Number
概念在上述场景中很方便,但不幸的是
Mysql
不支持
窗口函数的