複雑な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、content
正しい解決策としてサブクエリを使用すると思いますが、クエリを構造化する方法がわかりません