正しい値を返すクエリがあります。
SELECT cnl.id cID,
snl.id sID,
cnl.fk_lei cnl,
sid.lei sid,
cnl.fk_cnty_id cCid,
snl.fk_cnty_id sCid,
sec.id secID,
sid.id sidID
FROM cici.name_loc cnl
INNER JOIN se4.name_loc snl
ON snl.legal_name = cnl.legal_name
AND snl.fk_cnty_id = cnl.fk_cnty_id
INNER JOIN se4.sym_exch_cnty sec
ON sec.id = snl.fk_sec_id
INNER JOIN se4.identifiers sid
ON sid.fk_sec_id = sec.id
AND sid.lei = 'NA'
WHERE cnl.legal_name = 'Apple Inc.'
+ ------ + ------ + ---------------------- + ----- + ------ + ------ + ------- + ------- + | cID | sID | cnl | sid | cCid | sCid | secID | sidID | + ------ + ------ + ---------------------- + ----- + ------ + ------ + ------- + ------- + | 2010 | 3104 | HWUPKR0MPOU8FGXBT394 | NA | 233 | 233 | 13756 | 9722 | + ------ + ------ + ---------------------- + ----- + ------ + ------ + ------- + ------- +
クエリで使用されるテーブルのフィールドを更新できるように、これを変更したいと思います。したがって、上記の結果では、フィールド「sid」が「NA」から「HWUPKR0MPOU8FGXBT394」に更新されます。
正確には、「識別子」テーブルには「sid.lei」列があり、「NA」から「cnl.fk_lei」table.columnの値に変更する必要があります-上記の選択のすべての基準が会った。テーブル内のすべてのレコードではなく、1つのレコードのみを変更したい。
いくつかのルートを試しましたが、すべて同じエラーが発生します:エラー1062(23000):キー「mk_ident__6fks」のエントリ「HWUPKR0MPOU8FGXBT394-NA-NA-NA-1-1」が重複しています
これは、アップデートが間違っていることを教えてくれます。
これが私が試したアップデートの1つです:
UPDATE identifiers AS b
INNER JOIN cici.name_loc cnl
ON cnl.legal_name = 'Apple Inc.'
INNER JOIN se4.name_loc snl
ON snl.legal_name = cnl.legal_name
AND snl.fk_cnty_id = cnl.fk_cnty_id
INNER JOIN se4.sym_exch_cnty sec
ON sec.id = snl.fk_sec_id
SET b.lei = cnl.fk_lei
WHERE cnl.legal_name = 'Apple Inc.'
この例では、1つのレコードのみを更新しようとしています。ただし、snl.legal_name = cnl.legal_nameであるレコードが何百もあり、それらすべてをcnl.fk_leiの番号で更新する必要があります。
どんなアイデアでも大歓迎です。ありがとう!