2

同じ派生テーブルを使用して 3 つの連続したクエリを実行する必要があります... MS SQL Server 2008 を使用しています

Select a,b,c from categories inner join (select x,y,z from derivedTable where…) …
Select a,b,c from users inner join (select x,y,z from derivedTable where…) …
Select a,b,c from orders inner join (select x,y,z from derivedTable where…) …

派生テーブルの方法で 3 つの SQL クエリを同時に実行する方法はありますか

(select x,y,z from derivedTable where ...) 

は一度だけ実行されますか?

私は.netを使用しているので... 3つのテーブルを返し、3つのテーブルを含むデータセットをロードできるかどうか疑問に思っています。

ありがとう

4

1 に答える 1

2

使用できますWITH

注: @MartinWITHが指摘したように、数回評価されるため、正しい解決策は一時テーブルです。

WITH derivedTable (x,y,z)
as
(
    select x,y,z
      from derivedTable
      ...
)
SELECT a, b, c
  FROM users
  join derivedTable on ...
 WHERE ...
union all
SELECT a, b, c
  FROM orders
  join derivedtable on ...
 WHERE ... 
union all
 ...

または一時テーブル:

select x,y,z
  into #derivedTable
  from derivedTable
  ...

SELECT a, b, c
  FROM users
  join #derivedTable on ...
 WHERE ...
union all
SELECT a, b, c
  FROM orders
  join #derivedtable on ...
 WHERE ... 
union all
 ...
于 2011-10-15T11:32:05.690 に答える