0

タイトルはおそらくあまり役​​に立たないので、説明します。基本的に私は最初のクエリを持っています:

UPDATE sales_records
INNER JOIN (SELECT buyer_full_name, buyer_address_1
FROM sales_records
GROUP BY buyer_full_name, buyer_address_1
HAVING COUNT(*)>1) multiorder
ON sales_records.buyer_full_name = multiorder.buyer_full_name
AND sales_records.buyer_address_1 = multiorder.buyer_address_1
SET processed=1
WHERE sales_records.buyer_full_name<>''
AND sales_records.buyer_address_1<>''

したがって、上記は、複数の注文を行ったすべての人を処理済み = 1 に設定します。ただし、同じテーブルには、buyer_address_1 または buy_full_name を持たないが、同じ sales_record_number フィールドを持つ注文の一部があります。同じ sales_record_number を持つ残りのものも、processed=1 に更新する必要があります。

これは私が試したものです(他の同様のバリエーションの中でも)が、うまくいきません:

UPDATE sales_records
WHERE sales_record_number=(SELECT sales_record_number
FROM ebay_sales_records
WHERE processed=1)
AND processed=1

何か案は?

4

0 に答える 0