我有表 fruits ,蔬菜和 fruits_vegetables 。我必须更新那些只有一个相关蔬菜记录的 fruits 记录。
将 fruits_vegetables 加入 fruits 并按 fruits.id 分组并计数时,结果将无法更新为查询的查询结果包含组语句的内容不可更新。
所以现在我在phpmyadmin中做了这个测试:
SELECT
fruits.*,
(SELECT count(*)
FROM fruits_vegetables fv
WHERE fv.fruit_id=f.id) AS rel_count
FROM fruits f
HAVING rel_count = 1
似乎与count(*)聚合仍然会阻止查询结果可更新。
是否有其他方法可以更新与一个蔬菜记录有关系的 fruits 记录?
答案 0 :(得分:0)
您需要join
结果:
update fruits f join
(select fv.fruit_id, count(*) as cnt
from fruits_vegetables fv
group by fruit_id
having count(*) = 1
) fv
on fv.fruit_id = f.id
set f.isUnique = 1; -- Or whatever you want to set
我假设“一个蔬菜记录”的意思是“fruits_vegetables
中的一条记录,这是示例代码建议的。