再帰 SQL

最短経路問題については、この再帰 SQL というものを使えばスマートに解けるということはすでに見つけていたのだけど、どうやら ORACLEDB2 などの一部の商用データベース以外ではサポートされていないみたいで、残念ながら MySQL では使えないです。テーブル結合を繰り返せばなんとかなる場合もあるようですが、階層の深度が有限に決まっていないと解けません。効率もかなり悪そうです(効率については再帰 SQL を使ったとしても改善しないような気がしますが)。

http://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_1b.html