2012-12-27 4 views
0

je voulais exécuter cette requête:Mysql UPDATE requête avec deux tables

UPDATE up SET up.pts = uc.checkin_worth WHERE uc.email = up.email AND uc.company_id = up.company_id AND uc.email = '[email protected]' AND uc.company_id = '4' AND uc.qrcode = 'j'

Cependant, je reçois une erreur parce que je ne sais pas comment combiner deux tables (uc et plus) dans un UPDATE requête.

Quelqu'un peut-il m'aider à résoudre ce problème?

Merci,

+0

whe Si vous avez une question, il est utile d'afficher des informations sur les aspects de ce qui est traité; dans ce cas, ce serait sympa de voir la structure de vos tables, de voir ce qui peut être utilisé pour les joindre – Rubens

Répondre

2

Il suffit d'utiliser la syntaxe normale JOIN:

UPDATE up JOIN uc ON uc.email = up.email AND uc.company_id = up.company_id 
SET up.pts = uc.checkin_worth 
WHERE uc.email = '[email protected]' AND uc.company_id = '4' AND uc.qrcode = 'j' 

Vous pouvez également utiliser l'ancienne syntaxe des virgules, qui est plus proche de votre requête originale:

UPDATE uc, up 
SET up.pts = uc.checkin_worth 
WHERE uc.email = up.email 
AND uc.company_id = up.company_id 
AND uc.email = '[email protected]' 
AND uc.company_id = '4' 
AND uc.qrcode = 'j' 
+0

J'ai une faute de frappe dans mon nom de colonne, merci pour l'aide cependant. J'accepterai cette réponse quand je le pourrai. –

1

Essayez avec ceci:

UPDATE up, uc 
SET up.pts = uc.checkin_worth, 
WHERE uc.email = up.email AND uc.company_id = up.company_id AND uc.email = '[email protected]' AND uc.company_id = '4' AND uc.qrcode = 'j' 
+1

merci pour l'aide. AndreKR vous a battu :) –

Questions connexes