select *
from foo f
join bar b on f.id = b.foo_id
になっているものを
select *
from foo f
join bar b on b.foo_id = f.id
のように、直近のテーブルエイリアスb
をイコールの左辺側に持ってくるワンライナー
perl -pi -e 's/([^\.\s=]+) on ([^\.\s=]+)(\.[^\.\s=]+) = ([^\.\s=]+)(\.[^\.\s=]+)/$1 on $4$5 = $2$3/ if /([^\.\s=]+) on ([^\.\s=]+)(\.[^\.\s=]+) = ([^\.\s=]+)(\.[^\.\s=]+)/ and $1 ne $2' **/*.sql
テーブル結合条件のイコールの右辺と左辺の記述順は、
順序的にどちらがいいのかは正直微妙ですが、
これを統一してdiff等で余計な差分を出させないのが目的です。