Учитывая две таблицы A и B в базе данных MySQL, как можно обновить поле в строке таблицы A, если и только если определенные поля в вышеупомянутой строке в таблице A точно совпадают с полями в отдельной строке таблицы? B. Строки в таблице B должны использоваться один раз и только один раз для каждого сравнения. Таким образом, строка в таблице B, имеющая поля, соответствующие строке в таблице A, не может использоваться для усиления, чтобы соответствовать любой другой строке в таблице A.
Я пытался
UPDATE
Table A,
Table B
SET
Table A.Status = 'MATCHED',
Table B.Status = 'USED'
WHERE
Table B.Status IS NULL
AND
Table A.Field1 = Table B.Field1
AND
Table A.Field2 = Table B.Field2
К сожалению, это не дает желаемых результатов, поскольку разные строки в Таблице A, как правило, сопоставляются с одной и той же строкой в Таблице B.
Например: Таблица A
ID Date Ref Amount Status
1 2009-10-20 773 300000
2 2009-10-20 773 10000 MATCHED
3 2009-10-20 773 150000
4 2009-10-20 773 20000 MATCHED
5 2009-10-20 773 140000 MATCHED
Таблица B
Ref Amount Date ID
870 50000 2009-11-01 1
871 50000 2009-11-01 2
871 80000 2009-11-01 3
871 20000 2009-11-01 4
871 20000 2009-11-01 5
871 20000 2009-11-01 6
872 300000 2009-11-01 7
Для сопоставления с использованием Ref, Amount и Date.