首页 > 解决方案 > 如何将“Mysql JOIN”与同一张表的 sql 文本一起使用

问题描述

我想用mysql的“JOIN”

我想按“date_text”对行进行分组,其中“tokenIdx”为“1001”,“datetime_unix”为最大值。

我的代码错了吗?

 SELECT `A.idx` 
FROM `data_candle_h1` 'A'
JOIN 
    (
        SELECT `date_text`, MAX(`datetime_unix`) AS 'datetime_unix' 
        FROM `data_candle_h1` 
        WHERE `tokenIdx` = '1002' 
        GROUP BY `date_text`
    ) 'B'
ON `A.datetime_unix` = `B.datetime_unix` 
WHERE  `A.tokenIdx` = '1002'

数据库表

标签: mysqlsqljoinmariadb

解决方案


您的查询在语法上是完美的。只需删除表别名(A 和 B)周围的单引号('')。我已经纠正了。请检查一下。

SELECT `A.idx` 
FROM `data_candle_h1` A
JOIN 
    (
        SELECT `date_text`, MAX(`datetime_unix`) AS 'datetime_unix' 
        FROM `data_candle_h1` 
        WHERE `tokenIdx` = '1002' 
        GROUP BY `date_text`
    ) B
ON `A.datetime_unix` = `B.datetime_unix` 
WHERE  `A.tokenIdx` = '1002'

推荐阅读