結合する 2 つのテーブルがあります: tb_assets と tb_locations です。場所は、場所の階層です。したがって、アセットは「ビルディング A」に割り当てられ、その親ロケーションは「サンフランシスコ」であり、親ロケーションは「米国」である可能性があります。
資産を照会するときに、親の名前と、その場所の親の名前も取得したいと考えています。
テーブルのレイアウトは次のとおりです。
したがって、次を使用して、現在のアセットの親名を簡単に取得できますが、派生テーブルと CTE で遊んだことがありますが、これを達成するための適切な方法に頭を悩ませているようには見えません。
SELECT f_assetname, f_locationname
FROM tb_assets
LEFT JOIN tb_locations on f_assetlocationID = f_locationID
ここにいくつかのサンプルデータがあります
tb_assets
f_assetID f_assetname f_assetlocationID
------------------------------------------------------
1 Building A 1
2 Building B 2
tb_locations
f_locationID f_locationname f_locationparentID
------------------------------------------------------
101 United States NULL
102 San Francisco 101
上記の SQL を使用すると、以下が返されます。
f_assetname f_locationname
----------------------------------------
Building A San Francisco
Building B San Francisco
私が望む出力は次のようになります。
f_assetname f_locationname f_locationparentname
--------------------------------------------------------------
Building A San Francisco United States
Building B San Francisco United States
いかなる支援も、心から感謝します。
ありがとう、ビームス