0
現在のSQL INSERT INTOステートメントにクエリを追加しようとしています。以下は私のテーブルと現在のSQLステートメントです。重複するレコードをチェックする追加のSQLクエリを追加する
表1:ユーザーID、ユーザー名
は、私は3つのテーブルを持っています。表2:ユーザーID、ステータス。
表3:
INSERT INTO Table3(UserId, Username, Issue)
SELECT COALESCE(t1.UserId, t2.UserId), t1.UserName
, CASE
WHEN (t2.userid IS NULL AND t1.userid IS NOT NULL)
THEN 'User exists in t1 but not in t2'
WHEN (t2.status = 'DELETE' AND t1.userid IS NOT NULL)
THEN 'User Exists in t1, but status in t2 is not DELETE'
WHEN (t2.userid IS NOT NULL AND t2.status != 'DELETE' AND t1.userid IS NULL)
THEN 'Non-Deleted user in t2 does not exist in t1'
END
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.userid = t2.userid
WHERE (t2.userid IS NULL AND t1.userid IS NOT NULL)
OR (t2.status = 'DELETE' AND t1.userid IS NOT NULL)
OR (t2.userid IS NOT NULL AND t2.status != 'DELETE' AND t1.userid IS NULL)
:私は上記の3つのチェックを満たしてSELECT文を持っているし、表3に結果をINSERT現在
ユーザーID、ユーザー名、号今度は、重複したユーザーIDを確認し、のユーザーID、ユーザー名、およびIsを挿入する別のチェックを追加します。 「重複したユーザーIDがありました」と表題3に記載されている重複についてはとしてください。
- 同じキャップと同じユーザーIDの確認(例えばE01とE01が存在してはならない)
- 同じユーザーIDが異なるキャップのためのチェック(例えばE01とE01が存在してはならない)
どのように私がすべきこのSQLクエリを現在のSQL文に追加しますか?あなたはTable3
内の重複ユーザーID値を引き起こすことになる(Duplicated userid found
でレコードを挿入したい場合は
を表3に制約は '番目のレコードをINSERT'ingを防止することができます同じ 'UserID'を持つテーブルに? –