2012-05-04 9 views
2

このサイトでは、列名が異なる2つのテーブルを積み重ねる(1つのテーブルの結果を別のテーブルの結果の下に置く)コードを確認しました。私は名前が同じであるときにUNION ALLが動作することを知っています。そして、私は、一つのテーブルが他のテーブルより多くの情報を持っているときに、一つのテーブルから欠けているカラム名の割り当てを持つUNION ALLが動作することを知っています。名前は異なりますか? 1つの表で列名がCHPで、別の表で「チャイルド・ヘルス・プラス」なので、2つの列が互いに重なっている必要がありますか?異なる列名を持つ2つのSQLテーブル(2008)をスタックする

+0

はSOへようこそ!あなたのコードとエラーメッセージを表示してください。 – vyegorov

答えて

0

どのようなsql言語ですか? mysql/sqlサーバー?

mysqlでは列名が同じである必要はありませんが、列名の一致には常に 'AS'を使用できます。

select column1 AS col1, column2 AS col2... 

編集:私はちょうどポストタイトルで '2008'を見つけました - それはSQL Server 2008ですか?いずれにせよ、SQL Serverは気にしないようです。列名のいずれか。

7

UNIONは、列のデータ型が同じであれば使用できます。列名が異なるかどうかは関係ありません。

SELECT column1 
FROM Table1 
UNION 
SELECT column1 
FROM Table2 

あなたは、レコードから来ているテーブルを知りたい場合は、あなたが行を区別します別のフィールドを追加することができます:

SELECT column1, 'Table1' as TableName 
FROM Table1 
UNION 
SELECT column1, 'Table2' as TableName 
FROM Table2 
関連する問題