高级 MySQL 查询:使用另一个表中的数据更新表
当前的任务是更新业务表中的电子邮件列使用人员表中电子邮件列的数据。这两个表通过business_id列连接。
此更新查询的简单方法如下:
<code class="sql">UPDATE business b SET b.email = ( SELECT email FROM people p WHERE p.business_id = b.business_id AND sort_order = '1' ) WHERE b.email = '';</code>
但是,此查询只会更新每个business_id的第一个匹配项在人员表中。确保我们更新所有相关业务记录的修改是:
<code class="sql">UPDATE business b, people p SET b.email = p.email WHERE b.business_id = p.business_id AND p.sort_order = '1' AND b.email = '';</code>
通过使用 JOIN 语法显式连接业务 (b) 和人员 (p) 表,查询确保只有具有最高 sort_order 的人员值(即本例中的“1”)会影响更新。这更准确地符合使用每个企业排名最高的人员的电子邮件更新业务数据的预期目标。
以上是如何根据匹配 ID 和排序顺序使用另一个表中的数据更新表?的详细内容。更多信息请关注PHP中文网其他相关文章!