根据匹配的用户名更新 SQL 表:一种有效的方法
假设您有两个 SQL 表,table_a
和 table_b
,都包含 user_name
列。 目标是将数据从 table_b
中的特定列复制到 table_a
中的相应列,仅限用户名匹配的行。
优化的 SQL 查询
这里有一个有效的 SQL 语句来实现此数据传输:
<code class="language-sql">UPDATE table_a SET column_a_1 = (SELECT table_b.column_b_1 FROM table_b WHERE table_b.user_name = table_a.user_name), column_a_2 = (SELECT table_b.column_b_2 FROM table_b WHERE table_b.user_name = table_a.user_name) WHERE EXISTS (SELECT 1 FROM table_b WHERE table_b.user_name = table_a.user_name);</code>
该查询的操作如下:
column_a_1
中 table_a
的值更新 column_b_1
中的 table_b
,根据 user_name
匹配行。column_a_2
中 table_a
的相应值同时更新 column_b_2
中的 table_b
。EXISTS
子句确保仅对两个表中存在的 user_name
条目进行更新,从而防止错误。为了获得最佳性能,请确保 user_name
和 table_a
中的 table_b
列都有索引。这种索引显着提高了查询的速度和效率。
以上是如何根据匹配的用户名在SQL表之间高效复制数据?的详细内容。更多信息请关注PHP中文网其他相关文章!