0

これは動作します

SELECT * FROM productinfo a 
WHERE NOT EXISTS(SELECT NULL 
                FROM productinfo_temp b 
                            WHERE a.ProductID = b.ProductID)

ただし、その結果からproductinfoテーブルを更新したい

UPDATE a SET Deleted = '1' FROM productinfo a 
    WHERE NOT EXISTS(SELECT NULL 
                    FROM productinfo_temp b 
                                WHERE a.ProductID = b.ProductID)

しかし、それは機能しません。UPDATEの何が問題になっていますか?ここにエラーがあります

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM productinfo a WHERE NOT EXISTS(SELECT NULL FROM productinfo' at line 1
4

3 に答える 3

2

試す:

UPDATE productinfo a SET Deleted = '1'
    WHERE NOT EXISTS(SELECT NULL 
                    FROM productinfo_temp b 
                                WHERE a.ProductID = b.ProductID)
于 2013-01-08T02:27:25.103 に答える
2

FROM句を削除します。

UPDATE productinfo a 
SET Deleted = '1'
WHERE NOT EXISTS(SELECT NULL 
                 FROM productinfo_temp b 
                 WHERE a.ProductID = b.ProductID)

または単にこれを使用してLEFT JOIN

UPDATE  productinfo a 
        LEFT JOIN productinfo_temp b 
            ON a.ProductID = b.ProductID
SET     a.Deleted = 1
WHERE   b.ProductID IS NULL
于 2013-01-08T02:28:13.067 に答える
1

私も入っています!

UPDATE a SET Deleted = '1'
WHERE NOT EXISTS(SELECT NULL 
FROM productinfo_temp  b
WHERE a.ProductID = b.ProductID)
于 2013-01-08T02:30:56.710 に答える