2

同じフィールドを持つ 2 つのテーブルがあります。これらを 1 つの大きなテーブルにまとめたいと考えています。各テーブルの主キーは、一意の回答者 ID です。

2 つのテーブルを UNION ALL で結合すると、一部のデータが間違ったフィールドに入れられます。どうしてこれなの?それらは、元のテーブルの正しいフィールドにあります。UNION ALL は正しい演算子ですか?

4

2 に答える 2

6

ユニオンについて覚えておくべきことは、結果のデータセットの列名がユニオン宣言の最初のテーブルによって定義されるということです。

さらに、テーブルの構造の宣言で見つかった順序は、これに影響を与えます。

テーブル A が名前、住所、電子メールとして定義され、テーブル B が名前、電子メール、住所として定義されている場合

select * from tableA
union all
select * from tableB

これを修正するために、'Address' としてエイリアス化された列に tableB.Email を配置します。select ステートメントで列を定義する必要があります。

select Name, Email, Address from tableA
union all
select Name, Email Address from tableB
于 2012-10-14T05:54:23.913 に答える
4

UNION ALL は正しい操作であるはずですが、両方の部分でフィールドを明示的に名前でリストしましたか、それともワイルドカードとしてアスタリスクを使用しましたか?

于 2012-10-14T05:54:29.387 に答える