0

SQL Server 2008を使用して、3つの共通列(関連なし)を持つ複数のテーブルがあるとします。

表1

col1 colSomeOther col2 colAnotherOne

表2

col1 colSomeOther col2 colAnotherOne

表3

col1 colSomeOther col2 colAnotherOne

上記の3つのテーブルのcol1と2をマージするビューを作成したいと思います。何かのようなもの:

見る

col1   col2

ここで、col1にはテーブル1、2、および3のすべての要素が含まれ、col2にはテーブル1、2、3のcol2のすべての要素が含まれます。

これは可能ですか?

4

2 に答える 2

1

うん。これは「結合」です。同じ「シグニチャ」(データ列の数とタイプ)の複数の結果セットが、次々に連結されます。これを行うためのクエリは次のように簡単です。

SELECT col1, col2 FROM TABLE1
UNION ALL
SELECT col1, col2 FROM TABLE2
UNION ALL
SELECT col1, col2 FROM TABLE3

クエリで結果を「重複排除」して一意の行のみを返すようにする場合は、ユニオンから「ALL」キーワードを省略します。ALLキーワードを使用すると、Table1とまったく同じデータを持つ可能性のあるTable2の行を含め、各SELECTの結果を結合された結果セットに単純に追加します。

于 2012-10-16T17:30:59.147 に答える
0

私はあなたが求めていると思いますUNION

select col1, col2 from table1
UNION ALL
select col1, col2 from table2
UNION ALL
select col1, col2 from table3

3つのテーブルすべてで互換性のあるデータ型である限り、機能する必要col1があります。col2

重複する行を削除する場合は、UNIONの代わりにを使用してUNION ALLください。

于 2012-10-16T17:31:54.227 に答える