0
クエリのxml結果を返します。これは私がそれを期待して動作し、正しい結果を返しますXMLパスのSQL Server
SELECT
FooId,
FooName,
(
SELECT
BarId,
FooId,
BarName
FROM
Bar
WHERE
Bar.FooId = Foo.FooId
AND Bar.BarName = 'SomeBar'
FOR XML PATH('Bar'), TYPE
)
FROM
Foo
WHERE
Foo.FooName = 'SomeFoo'
AND Foo.FooId IN
(
SELECT
Bar.FooId
FROM
Bar
WHERE
Bar.BarName = 'SomeBar'
)
FOR XML PATH('Foo'), TYPE
:私はのようなselect文を作成
**Foo**
FooId int
FooName varchar(10)
**Bar**
BarId int
FooId int (FK)
BarName varchar(10)
:
は、2つのテーブルを考えます。私はそれを開発している間に、正しい結果を得るために、where句のサブ選択と入れ子選択の両方でフィルタリング句を複製する必要があることを認識しました。
私はこれを行うより良い方法がないことを確認したいと思います。同僚はエイリアスを使用して重複する句を削除すると述べましたが、それがどのように達成されるかはわかりません。
これが必要ですか、それとも良い方法がありますか?