Tu est sous quelle version de MySQL ?
Insert into table2(champ1,champ2,volume) VALUES( SELECT DISTINCT champ1, champ2, count( champ1 ) AS count FROM table1 group by champ1) INSERT INTO table2( val) WHERE ( SELECT * FROM table2 a, table1 b WHERE a.champ1 = b.champ1 AND a.champ2 = b.champ2 ) VALUES ( 1 )
La syntaxe correcte est la suivante :
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [iGNORE]
[iNTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
UPDATE table2 a SET value = ( SELECT b.id FROM table1 b WHERE b.id =1 ) WHERE a.id =10
Ta requête SELECT b.id FROM table1 b WHERE b.id =1 va logiquement retourné 1 non ? Si elle retourne plusieurs résultats, il faut utiliser un value IN" au lieu du "value ="