この例では、2つのテーブルを結合しています。
DECLARE @AA TABLE
(
A1 INT,
A2 INT
)
DECLARE @BB TABLE
(
B1 INT,
B2 INT
)
INSERT INTO @AA values (1,1)
INSERT INTO @AA values (2,2)
INSERT INTO @AA values (3,3)
INSERT INTO @BB values (1,1)
INSERT INTO @BB values (2,2)
INSERT INTO @BB values (3,3)
SELECT A1, A2, B1, B2 from @AA a
JOIN @BB b on b.B1 = a.A1
where 1=1
and a.A1 in (1,2)
and b.B1 in (select max(bb.B1) from @BB bb JOIN @AA aa on bb.B1 = aa.A1 where aa.A1 in (1,2))
上記のコードは、「2,2,2,2」という結果を取得しようとしているため、機能しています。
これを行うためのより効率的な方法はありますか?内側の選択は外側の選択とほとんど同じで、私にはあまり見栄えがよくありません。