以前次のような記事を書いた。
stsa.hatenablog.com
この内容でもまあ、目的は達成しているのだけどいかんせんダサい。
何がダサいかって、テーブルごとに範囲を選択して切り取らないといけないので手間だ。
そのため、別の方法を考えてみた。
考えた結果、キー項目を一時テーブルに確保してあげて、そのテーブルを条件に使ってSELECTしたらいいのではという考えに至った。
ではSQLについて。
CREATE TABLE #work1 (id int ,name varchar(10) ); CREATE TABLE #work2 (id int ,name varchar(10) ); INSERT INTO #work1 ([id], [name]) VALUES (1, 'test1'); INSERT INTO #work1 ([id], [name]) VALUES (2, 'test2'); INSERT INTO #work2 ([id], [name]) VALUES (1, 'test12'); INSERT INTO #work2 ([id], [name]) VALUES (2, 'test22'); -- id集約用 CREATE TABLE #work_id (id int ); INSERT #work_id SELECT #work1.id FROM #work1 INNER JOIN #work2 ON #work1.id = #work2.id SELECT * FROM #work1 WHERE id IN (SELECT id FROM #work_id) SELECT * FROM #work2 WHERE id IN (SELECT id FROM #work_id)
うん。こっちの方が扱いやすいね。