と という名前の 2 つのテーブルがTableA
ありTableB
ます。と の両方TableA
にTableB
次の列が含まれます: name
、member_id
。TableB
現在、 には の「正しい」値が含まれていますが、含まれてmember_id
いTableA
ません。
私がしたいのは、列member_id
のすべての値をTableB
それぞれの列に移行することですTableA
(列列の値と一致しname
ます)。ただし、2 つのテーブル間で名前の入力がわずかに異なる場合があります。
WHEN EXISTS
サブクエリは正しくありませんが、次のSQLクエリを書きました。誰かがこれを手伝ってくれますか? ありがとう。
UPDATE TableA
SET member_id =
CASE
WHEN EXISTS
(SELECT member_id
FROM TableB
WHERE TableB.name ILIKE '%' || 'TableA.name' || '%'
LIMIT 1)
THEN member_id
ELSE '1'
END
WHERE
TableA.member_id = '0'
また、member_id
が不明な場合は 0 に設定するように設定しました。列ELSE '1'
の 0 を 1 に更新してmember_id
、クエリが実行され、その行が既に変更されていることがわかるようにします。
明確化: に 似ている=TableA.member_id
を設定したい。0 と 1 はデバッグ用であり、最終目標ではありません。TableB.member_id
TableA.name
TableB.name