Mysql 使用单个查询更新多个表
这三张桌子都不一样。他们唯一的共同点是Mysql 使用单个查询更新多个表,mysql,sql,Mysql,Sql,这三张桌子都不一样。他们唯一的共同点是id,和image 仅当每个表中都有行时,此查询才起作用 最好的方法是什么?请不要使用事先准备好的语句。这已经在我的待办事项清单上:) 我尝试使用左连接,但也不起作用。问错了吗 UPDATE content LEFT JOIN subcontent on subcontent.image = content.image LEFT JOIN products on products.image = content.image SET conte
id
,和image
仅当每个表中都有行时,此查询才起作用
最好的方法是什么?请不要使用事先准备好的语句。这已经在我的待办事项清单上:)
我尝试使用左连接
,但也不起作用。问错了吗
UPDATE content
LEFT JOIN subcontent on
subcontent.image = content.image
LEFT JOIN products on
products.image = content.image
SET content.image = NULL, subcontent.image = NULL, products.image = NULL
WHERE content.image = 'test.png'
OR subcontent.image = 3
OR products.image = 3
三次单独的更新怎么样
UPDATE subcontent
SET subcontent.image = NULL
WHERE subcontent.image = 3;
UPDATE products
SET products.image = NULL
WHERE products.image = 3;
UPDATE content
SET content.image = NULL
WHERE content.image = 'test.png';
尝试多表更新时遇到的问题是,这会使用连接。唉,如果其中一个表是空的,那么连接将不会返回任何表中要更新的行。您可以使用左联接
,但必须假设第一个表不是空的。而且,MySQL不支持完全外部连接
三个单独的更新可能是最简单的方法。Hm,我将研究LEFT JOIN
,因为content
表中的内容永远不会为空。看起来LEFT JOIN
也不起作用,但我可能做错了。如果你能看一下的话,我把这个问题放在我原来的帖子里。@Draven。这显然不是你想要的。image
字段似乎在content
中包含一个字符串,但在其他两个表中包含一个数字。我将坚持三个独立的问题。
UPDATE subcontent
SET subcontent.image = NULL
WHERE subcontent.image = 3;
UPDATE products
SET products.image = NULL
WHERE products.image = 3;
UPDATE content
SET content.image = NULL
WHERE content.image = 'test.png';