Mysql 如何在同一个表中使用内部联接
我有一个表名为tnx_line_transfer。模式如下 现在我想生成如下输出 输出 我尝试下面的查询,但它没有显示正确的输出。这个问题是什么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
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
不支持窗口函数的