Compte tenu deux tables A et B dans une base de données MySQL, comment peut-on mettre à jour un champ dans une ligne du tableau A si et uniquement si certains champs de la ligne mentionnée dans le tableau A correspondent exactement aux champs d'une ligne distincte de la table B. Les lignes de la table B doivent être utilisées une seule fois et une seule fois pour chaque comparaison. En tant que tel, une ligne dans le tableau B qui a des champs correspondant à une ligne dans le tableau A ne peut pas être utilisé un gain pour correspondre à toute autre ligne du tableau A.Comment puis-je faire correspondre trois champs de deux tables afin de mettre à jour les mêmes tables en cas de correspondance
J'ai essayé
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
Malheureusement, cela ne ne pas donner mes résultats souhaités puisque les différentes lignes du tableau A ont tendance à être jumelé avec la même ligne dans le tableau B.
par exemple: Tableau 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
Tableau 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
Pour correspondre à l'aide de Ref, Montant et Date.
Pourriez-vous s'il vous plaît fournir des exemples de données? Cela pourrait aider les autres à répondre à votre question. –
À première vue, il semble que vous ayez besoin d'une jointure ... cependant, certains exemples de données montrant des résultats souhaités et incorrects vous aideraient. –
Terminé. maintenant s'il vous plaît signer NDA :) – jake