Oracleには、空間関係に基づいて結合表を作成するために使用されるSDO_JOINという表関数があります。家はである何近所見つけるためのクエリの例は次のようなものです:Oracleで空間結合を実行する適切な方法は何ですか?
select
house.address,
neighbourhood.name
from table(sdo_join('HOUSE', 'GEOMETRY', 'NEIGHBOURHOOD', 'GEOMETRY', 'mask=INSIDE')) a
inner join house
on a.rowid1 = house.rowid
inner join neighbourhood
on a.rowid2 = neighbourhood.rowid;
しかし、私はちょうど句の上の空間的関係と結合定期的に実行して同じ結果を得る:
select
house.address,
neighbourhood.name
from house
inner join neighbourhood
on sdo_inside(house.geometry, neighbourhood.geometry) = 'TRUE';
私は、正確に何が起こっているのかを理解するのが簡単だと思うので、2番目の方法が好きですが、これが空間結合を行う適切な方法であるかどうかについてOracleのマニュアルを見つけることができませんでした。
これら2つの方法に違いはありますか?もしあれば、何?存在しない場合、どのスタイルがより一般的ですか?