首页  >  问答  >  正文

MYSQL 分组依据最后一个值但有条件

我将解释我的情况。 MySQL 5.7

我有 2 个表:注册表和移动。 这两个表有IDMovement共同点,所以我可以加入它们

我的问题: 我需要按 Registry 列(是 varchar 列)进行分组,我需要检查 MAX IDMovement。在此行中,还有另一列名为 IDCausal。如果 MAX IDMovement 上的 IDCasual 与 21 不同,则跳过。否则返回该行。

我将举例说明我所做的事情:

SELECT
    m.IDMovement,
    mo.IDCausal,
    m.Registry 
FROM
    registry m
    JOIN movement mo ON m.IDMovement = mo.IDMovement 
WHERE
    m.Registry = "2SST0160"

附注WHERE 只是一个例子,我需要对每个注册表进行查询。

注册表 2SST0160 的返回值为:

IDMovement   IDCausal  Registry
5550         21        2SST0160
9817         5         2SST0160

在示例中,MAX IDMovement 为 9817,但 IDCausal 为 5,因此本例中查询的预期结果为 NOTHING。如果 IDCausal 为 21,则预期结果仅为 21 的行。对于每个注册表,我预计每个注册表的结果为 0 或 1 行。

希望我说得清楚,谢谢您的帮助!

P粉037450467P粉037450467401 天前413

全部回复(1)我来回复

  • P粉165522886

    P粉1655228862023-09-15 00:13:19

    雷雷

    回复
    0
  • 取消回复