2010-08-23 8 views
0

J'essaye de faire un INSERT SELECT avec condition mais smthg semble être faux. Je reçois une erreur 1064 pour la syntaxe incorrecte.INSERT SELECT avec condition

Voici la requête:

INSERT INTO `db1`.`table`.`field` (

SELECT a.`field1` , a.`field2` 
FROM `db2`.`table1` a, `db2`.`table2` b 
WHERE a.`field1` = b.`field1` 
AND b.`field2` = 'value' 
) 

WHERE a.`field1` = `db1`.`table1`.`field1` 

Merci à l'avance pour toute suggestion

Répondre

1

Syntaxe pour l'insert select est:

INSERT california_authors (au_id, au_lname, au_fname) 
SELECT au_id, au_lname, au_fname 
FROM authors 
WHERE State = 'CA' 

donc en vous cas comme

INSERT INTO `db1`.`table` (.... field list ...) 
    select 
    ... col for select ..... 
    from table 
    where ... where condition .... 
+0

ne fonctionne pas pour moi; semble encore avoir un problème avec la seconde clause where (pour insert); mauvaise syntaxe – Kyobul

+0

oui vous ne pouvez pas écrire deuxième où clause comme ça –

+0

ok alors! php le fera de toute façon, essayait juste de tout faire mysql :) – Kyobul

0

Le synt ax for INSERT INTO est généralement

INSERT INTO myTable (field1,field2,...,fieldN) 
SELECT field1,field2,etc FROM myTable WHERE condition 

Vous devez simplifier vos requêtes et réfléchir à ce que vous essayez de faire.

0

Ma question était mauvaise. Dans ce cas, ce n'est pas Insert mais une requête de mise à jour qui est nécessaire