2017-09-22 4 views
0

J'essaie de sauvegarder une table interrogée dans une autre table. Ma nouvelle table est déjà créée avec la structure suivante:Erreur de syntaxe (1064) dans la ligne 2

TABLE: edit_mdr 
+---------------+----------------+---------------------------------+ 
|Column   | Type   | Comment       | 
+---------------+----------------+---------------------------------+ 
| ID   | int(10)  | unsigned zerofill Auto Increment| 
+---------------+----------------+---------------------------------+ 
| date_submitted| date   |         | 
+---------------+----------------+---------------------------------+ 
| requestor  | varchar(40) |         | 
+---------------+----------------+---------------------------------+ 
| campus  | varchar(10) |         | 
+---------------+----------------+---------------------------------+ 
| defect_loc | varchar(40) |         | 
+---------------+----------------+---------------------------------+ 
| defect_des | varchar(1500) |         | 
+---------------+----------------+---------------------------------+ 
| priority  | varchar(10) |         | 
+---------------+----------------+---------------------------------+ 
| action_taken | varchar(1500) |         | 
+---------------+----------------+---------------------------------+ 
| assigned_to | varchar(40) |         | 
+---------------+----------------+---------------------------------+ 
| category  | varchar(30) |         | 
+---------------+----------------+---------------------------------+ 
| photo   | varchar(200) |         | 
+---------------+----------------+---------------------------------+ 
| status  | varchar(10) |         | 
+---------------+----------------+---------------------------------+ 

La requête est la suivante:

MySQL Query: 
INSERT INTO edit_mdr (date_submitted, requestor, campus, defect_loc, defect_des, priority, action_taken, assigned_to, category, photo, status) 
    VALUES(SELECT submit_time, 
    MAX(IF(field_name = 'your-name',  field_value, NULL)) AS requestor, 
    MAX(IF(field_name = 'menu-campus', field_value, NULL)) AS campus, 
    MAX(IF(field_name = 'location',  field_value, NULL)) AS defect_loc, 
    MAX(IF(field_name = 'your-message', field_value, NULL)) AS defect_des, 
    MAX(IF(field_name = 'menu-priority', field_value, NULL)) AS priority, 
    MAX(IF(field_name = 'work_done',  field_value, NULL)) AS action_taken, 
    MAX(IF(field_name = 'assigned-to', field_value, NULL)) AS assigned_to, 
    MAX(IF(field_name = 'category',  field_value, NULL)) AS category, 
    MAX(IF(field_name = 'file-photo', field_value, NULL)) AS photo, 
    MAX(IF(field_name = 'status',  field_value, NULL)) AS status 
FROM 
    wpc5_cf7dbplugin_submits 
GROUP BY 
    submit_time); 

L'erreur renvoyée est

Erreur dans la requête (1064): Erreur de syntaxe près de 'SELECT submit_time, MAX (IF (nom_de_voie =' votre-nom ', valeur_zone, NULL)' à la ligne 2

Je n'ai aucune idée de ce qui se passe avec la deuxième ligne dite erreur .... Pls aide!

+0

Vous devriez lire la syntaxe 'de INSERT'. Vous utilisez soit "VALUES" soit "SELECT", pas les deux. – Barmar

Répondre

0

essayer en évitant les 'valeurs'

INSERT INTO edit_mdr (date_submitted, requestor, campus, defect_loc, defect_des, priority, action_taken, assigned_to, category, photo, status) 
    (SELECT submit_time, 
    MAX(IF(field_name = 'your-name',  field_value, NULL)) AS requestor, 
    MAX(IF(field_name = 'menu-campus', field_value, NULL)) AS campus, 
    MAX(IF(field_name = 'location',  field_value, NULL)) AS defect_loc, 
    MAX(IF(field_name = 'your-message', field_value, NULL)) AS defect_des, 
    MAX(IF(field_name = 'menu-priority', field_value, NULL)) AS priority, 
    MAX(IF(field_name = 'work_done',  field_value, NULL)) AS action_taken, 
    MAX(IF(field_name = 'assigned-to', field_value, NULL)) AS assigned_to, 
    MAX(IF(field_name = 'category',  field_value, NULL)) AS category, 
    MAX(IF(field_name = 'file-photo', field_value, NULL)) AS photo, 
    MAX(IF(field_name = 'status',  field_value, NULL)) AS status 
FROM 
    wpc5_cf7dbplugin_submits 
GROUP BY 
    submit_time); 
+0

@Barmar, merci! – aswindev

0
INSERT INTO edit_mdr (date_submitted, requestor, campus, defect_loc, defect_des, priority, action_taken, assigned_to, category, photo, status) 

     SELECT submit_time, 
    MAX(IF(field_name = 'your-name',  field_value, NULL)) AS requestor, 
    MAX(IF(field_name = 'menu-campus', field_value, NULL)) AS campus, 
    MAX(IF(field_name = 'location',  field_value, NULL)) AS defect_loc, 
    MAX(IF(field_name = 'your-message', field_value, NULL)) AS defect_des, 
    MAX(IF(field_name = 'menu-priority', field_value, NULL)) AS priority, 
    MAX(IF(field_name = 'work_done',  field_value, NULL)) AS action_taken, 
    MAX(IF(field_name = 'assigned-to', field_value, NULL)) AS assigned_to, 
    MAX(IF(field_name = 'category',  field_value, NULL)) AS category, 
    MAX(IF(field_name = 'file-photo', field_value, NULL)) AS photo, 
    MAX(IF(field_name = 'status',  field_value, NULL)) AS status 
FROM 
    wpc5_cf7dbplugin_submits 
GROUP BY 
    submit_time 
;