SQL Serverでクエリ結果の結合に関する小さな問題

1481 ワード

一昨日のプロジェクトは、ちょうど引き継いで、モジュールに対してまだよく知らないで、その中に1つのモジュールがあって、4つのテーブルに関連して、その中の主要なテーブルは2つあって、これをはっきりさせたらすべて“太平”に戻りました.
モジュール要件:2つのテーブルの内容をクエリーし、結果を接続します.マスターは言って、何の問題もないと感じて、自分でデータベースの表の設計を見て、見終わった後に、2枚の表の中のメインキーが完全に同じであることを発見しました!
プロジェクトは読み上げるだけでなく、メインキーに基づいて対応するすべてのデータを読み上げるように設計されているので、頭が痛いです.考えてみれば、やむを得ないときにユニオンやユニオンALLを使わないと、性能が大幅に低下すると先生が言っていました.
そこで、みんなと简単なものに変えてもいいかどうか相谈しました.别れてもいいと言われました.同じ业务を二つに分けてやってもいいです.一つはよくありません.二つは美しくありません.
このようにして、家に帰って方法を考えて、検索は簡単で、主キーが同じ場合にデータがそのテーブルから来た問題をどのように区別するかです.
反発の列をつけようとしたが、やってみたら成功しなかった.最後に、異なるテーブルを区別するためのフラグが追加されました.
コードは次のとおりです.
SELECT a.biAutoID, a.vCompanyName ,'Table_1' AS Differ FROM CapitalProjectKeyTechnology  as a

UNION ALL

SELECT b.biAutoID, b.vCompanyName ,'Table_2' AS Expr1 FROM  CapitalProjectTest as b