48823


AテーブルとBテーブル 同じレイアウトのテーブルがあって、双方のテーブルにレコード（同一キーの）  
が存在した場合、Bテーブル側のレコードを出力したいです。Aテーブル側のレコードは出力したくありません。

BテーブルがAテーブルの後継になる運用を目指しています。

Aテーブルにしか（当該キーの）レコードが存在しない場合は Aテーブル側の内容を出力  
Bテーブルにしか（当該キーの）レコードが存在しない場合は Bテーブル側の内容を出力  
AB双方のテーブルに（当該キーの）レコードが存在する場合は Bテーブル側の内容を出力

こういったことを達成したいです。  
システム移行でありがちな発行文ですが、お知恵を頂けませんでしょうか

当方のDBMSはMSですが、SQL文にそう大差ない認識ですので どのDBMSの例でも良いので例を示して頂ければ幸いです。ちなみに
以下2つのSELECT文をまとめて キーごと（USERID）のレコード出力を達成したいです。よろしくお願い致します。

[code]

    SELECT USERID, USERNAME, LEVEL FROM TABLE_A
    SELECT USERID, USERNAME, LEVEL FROM TABLE_B
    
[/code]


CC BY-SA 4.0
2018-09-29T08:46:57.917
48821
2018-09-29T09:36:10.967
25696
question
sql
SQL文組立ての質問：　2つのテーブル（同レイアウト）、双方存在の場合Bテーブルから出力したい


> Aテーブルにしか（当該キーの）レコードが存在しない場合は Aテーブル側の内容を出力  
>  Bテーブルにしか（当該キーの）レコードが存在しない場合は Bテーブル側の内容を出力  
>  AB双方のテーブルに（当該キーの）レコードが存在する場合は Bテーブル側の内容を出力

は

  * Bテーブルの内容を出力
  * Bテーブルに含まれていないキーのAテーブルの内容を出力

と簡略化することができます。含まれる・含まれないは[`IN`・`NOT IN`](https://docs.microsoft.com/ja-
jp/sql/t-sql/language-elements/in-transact-sql?view=sql-server-2017)で表現できます。

[code]

    SELECT USERID, USERNAME, LEVEL
    FROM TABLE_B
    UNION ALL
    SELECT USERID, USERNAME, LEVEL
    FROM TABLE_A
    WHERE USERID NOT IN (SELECT USERID FROM TABLE_B)
    
[/code]


CC BY-SA 4.0
2018-09-29T09:36:10.967
48823
2018-09-29T09:36:10.967
4236
48821
answer