SQL

SQLにletやlet recに相当する構文があることを知りました。
(この辺とか参考に http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_1b.html
letはWITHを使って書きます。

WITH tmp1 AS (
  SELECT a1, a2, SUM(a3) s3 FROM tbla GROUP BY a1, a2
)
SELECT b.b1, t.a2, t.s3 FROM tmp1 t JOIN tblb b ON t.a1 = b.b2

let recはWITH RECURSIVEを使って書きます。

WITH RECURSIVE tmp1 AS (
  SELECT obj_id, parent_id FROM tbla WHERE obj_id = 1
  UNION ALL
  SELECT obj_id, parent_id FROM tbla WHERE parent_id = tmp1.obj_id
)
SELECT * FROM tmp1

WITH RECURSIVEの書き方ににやりとしてしまうのは私だけでしょうか?