2013-09-19 8 views
0
files_imported 
-------- 
ID (PK) 
SPN 
FILE_ID 
LISTPRICE 
ACTION 

мне нужно искать и обновлять TableA и задать действие = «А», где значение PRICE в строке с заданным SPN не равно значению ЦЕНА найдена для другого FILE_ID и соответствующего SPN.Обновление строки на основе значения других строк в одной таблице

Я могу сделать это с помощью PHP, разбив задачу на более мелкие запросы, но я предпочел бы иметь чистое решение с MySQL.

Это как далеко я получил:

UPDATE files_imported fi1 
JOIN files_imported fi2 
    ON fi1.SPN = fi2.SPN 
SET ACTION = 'M' 
WHERE fi1.file_id = 980987987 
AND fi1.listprice <> fi2.listprice 

ответ

0
UPDATE files_imported fi1, files_imported fi2 
SET f11.ACTION = 'M' 
WHERE fi1.file_id = 980987987 
AND fi1.SPN = fi2.SPN /* same SPN*/ 
AND fi1.listprice <> fi2.listprice /* different price */ 
AND fi1.file_id <> fi2.file_id /* different file */ 
+0

Не думаю, что это будет работать, как нет подмножество записей для сравнения строк против. – bikey77

Смежные вопросы