私の状況を説明します。 MySQL 5.7
レジストリとモバイルという 2 つのテーブルがあります。 これら 2 つのテーブルには IDMovement という共通点があるため、結合できます
###私の質問:Registry 列 (varchar 列) でグループ化する必要があり、MAX IDMovement を確認する必要があります。この行には、IDCausal という名前の別の列があります。 MAX IDMovement の IDCasual が 21 と異なる場合はスキップします。それ以外の場合は行を返します。
私がやったことの例を示します:リーリー
WHERE は単なる例であり、各レジストリをクエリする必要があることに注意してください。レジストリ 2SST0160 の戻り値は次のとおりです:
リーリー
この例では、MAX IDMovement は 9817 ですが、IDCausal は 5 であるため、この例のクエリの予期される結果は NOTHING です。 IDCausal が 21 の場合、期待される結果は 21 行のみです。各レジストリについて、結果はレジストリごとに 0 行または 1 行になると予想します。理解できたと思います。ご協力ありがとうございました。
P粉1655228862023-09-15 00:13:19
WITH newtable AS ( SELECT m.IDMovement, mo.IDCausal, m.Registry FROM registry m JOIN movement mo ON m.IDMovement = mo.IDMovement WHERE m.Registry = '2SST0160' ) SELECT * FROM newtable WHERE (SELECT IDCausal FROM newtable ORDER BY IDMovement DESC LIMIT 1) = 21 ORDER BY IDMovement DESC LIMIT 1;