私はこのようなテーブルを持っています...
mysql> select * from billing_order_history;
+----------+---------------+--------------+---------------------+
| order_id | modify_action | new_order_id | modified_by_user_id |
+----------+---------------+--------------+---------------------+
|       52 |             2 |           54 |                   1 | 
|       54 |             2 |           55 |                   1 | 
|       55 |             2 |           56 |                   1 | 
+----------+---------------+--------------+---------------------+
3 rows in set (0.00 sec)
古いオーダー ID は、新しいオーダー ID に関連付けられます。52 >> 54 >> 55 >> 56
元の注文 ID が 52 の場合、最新の注文 ID、つまり 56 を返す必要があります。
where 句に b.order_id = 52 を追加すると機能しない次の自己結合を記述しました。
select max(a.new_order_id) from billing_order_history as a inner join billing_order_history as b on a.order_id = b.new_order_id 
スキーマとサンプル レコード:
 CREATE TABLE billing_order_history (
  order_id bigint(20) ,
  modify_action int(11) ,
  new_order_id bigint(20) ,
  modified_by_user_id bigint(20) 
) ;
insert into billing_order_history values (52, 2, 54, 1), (54, 2, 55, 1), (55,2,56,1);