我一直在尝试将复杂的 SELECT 查询转换为 UPDATE 查询,但我不断收到 1064 语法错误。
查询的目标是更新满足特定条件的某些行,但是连接以及 GROUP BY 和 HAVING 语句使我现在拥有的查询无法实现。我知道这不是正确的方法,但我无法发现解决方案应该是什么。如果有人能告诉我解决方案的方向,我会很棒!
我的查询(值不正确,但提供了更多上下文):
UPDATE products p
JOIN products_to_specifications pts ON pts.products_id = p.products_id
JOIN products_specifications ps ON ps.specifications_id = pts.specifications_id
SET p.products_image = 'file_name.jpg'
WHERE ps.specifications_name IN ('color')
AND pts.content IN ('black')
AND p.products_manufacturer = 'BMW'
AND p.products_name = 'M5'
GROUP BY p.products_id
HAVING COUNT(DISTINCT ps.specifications_name) = 1 AND COUNT(DISTINCT pts.content) = 1
我的表结构:
表产品: products_id、products_image 等(每个产品的基本信息相同)
表 products_specifications: specifications_id,specifications_name
表 products_to_specifications: products_id、specifications_id、内容
我认为对于正确的解决方案,我将使用子查询,但我不确定如何构造查询