2012-11-21 5 views
0

Je ne sais pas ce qui est erroné avec ma requête mais je reçois cette erreur:Mise à jour avec jointure interne question

Error Code : 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'From a 
INNER JOIN table2 b 
ON a.column1 = b.column1 AND a.column2 = b.column2' at line 4 

Voici le sql que je suis en train:

UPDATE table1 AS a 
Set a.Closed = 2 

From a 
INNER JOIN table2 b 
ON a.column1 = b.column1 AND a.column2 = b.column2 
WHERE number in (01809076,02170039); 
+0

appartiennent à nombre ne tableau a ou b? – bonCodigo

+0

Je ne suis pas un mec MySQL, mais je pense que la requête 'FROM ... JOIN' dans' UPDATE' n'est pas valide même dans MySQL. – Dennis

+0

@bonCodigo numéro appartient à la table b – jomsk1e

Répondre

5

dans MySQL, la La syntaxe pour UPDATE avec jointure est comme ceci. (pas FROM clause)

UPDATE table1 AS a 
     INNER JOIN table2 b 
      ON a.column1 = b.column1 AND 
       a.column2 = b.column2 
SET  a.Closed = 2 
WHERE b.number in (01809076,02170039); 

celui que vous utilisez actuellement est pour T-SQL

+0

lorsque j'utilise cette syntaxe, la plate-forme que j'utilise se bloque. J'utilise SQLYog. Je ne sais pas ce qui se passe. :( – jomsk1e

+0

@JRC vous mettez à jour sur la grande base de données? –

+0

oui po, je ne sais pas pourquoi il faut du temps pour charger et JOJ se bloque – jomsk1e

0

S'il vous plaît mettre à jour votre requête comme ceci:

MISE À JOUR table1 Set Fermé = 2

De table1 a INNER JOIN table2 b SUR UNColonne1 = b.colonne1 ET a.colonne2 = b.colum n2 WHERE numéro dans (01809076,02170039);

Il va certainement travailler

Merci Uttam

+0

J'ai toujours eu cette erreur- Code d'erreur: 1064 Vous avez un erreur dans votre syntaxe SQL, consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'Receivinglog a INNER JOIN bartran b ON a.batchid = b.batchid ET a.type = b' à la ligne 3 – jomsk1e

0

Vous pouvez le faire facilement:

UPDATE table1,table2 
SET  table1.Closed = 2 
WHERE table1.column1 = b.column1 AND table1.column2 = table2.column2 AND table2.number in (01809076,02170039) ; 
Questions connexes