MySQL连表更新记录

MySQL连表更新记录

假若我们希望将表 table_b 中的一个字段 bname 中的内容“拷贝”到表 table_a 中对应的 aname 字段中,而表 table_a 中的记录与表 table_b 中的记录是通过 id 想关联的。


首先我们来联表查询一下:

SELECT a.id, a.aname, b.bname
FROM table_a a, table_b AS b
WHERE a.id = b.id;


没有发现出错,可以执行与之对应的 Update 语句:

UPDATE table_a a, table_b AS b
SET a.aname = b.bname
WHERE a.id = b.id;


可以延伸到子表记录数的统计。下面是一个连表更新产品分类中产品计数的例子,在此就不多做解释了。

UPDATE categories a
SET a.products_count = (
    SELECT COUNT(*) FROM products b WHERE b.categories_id = a.id
);


这样的 SQL 语句就可以实现连表修改了,是不是很简单?马上试试吧!


4