テーブルにデータを挿入するクエリがあり、データは別のテーブルから取得され、WHERE 条件は最初のテーブルのすべてのレコードを指定します。
INSERT INTO `table_a` (`field_x`, `field_y`)
SELECT `field_x`, `field_y`
FROM `table_b`
WHERE `field_x` IN
(
SELECT `field_x`
FROM `table_a`
) ON DUPLICATE KEY UPDATE `field_y`=`table_b`.`field_y`, `field_x`=`table_b`.`field_x`
実際には、table_aごとfield_x
に、すべてを選択しfield_x
、 返されたすべての行を挿入して table_a を更新field_y
したいと考えています。table_b
サブクエリでの IN の使用が遅いことが知られていることは既に知っています。また、このアプローチが完全に間違っていないかどうかも自問しています.ここに、助けて私に連絡できるSQLの専門家はいますか?問題への正しいアプローチ?