2017-03-07 2 views
0

J'essaie d'insérer les résultats d'une requête de jointure dans une autre table. La requête de jointure seule sans la clause INSERT INTO fonctionne correctement et renvoie un jeu de données. Mais la requête ci-dessus donne une erreur de syntaxe SQLEffectuer un INSERT .. SELECT dans MySQL avec des tables dérivées

+0

Quel est le message d'erreur? –

+0

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'SELECT b.id – PrashanD

+0

Il y a trop de parenthèses à droite. –

Répondre

1

Modifier la syntaxe de requête comme ceci:

CREATE TABLE temp (`id` int, `number` int, `attempt` int); 

INSERT INTO temp (`id`, `number`, `attempt`) 
SELECT b.id, b.number, b.attempt FROM (
    SELECT number FROM duplicate_numbers 
) a 
JOIN calls b ON b.number=a.number 

démonstration de travail: http://sqlfiddle.com/#!9/24f9f

+0

Ne fonctionne pas. Déjà essayé ça – PrashanD

+0

@Prashan Même erreur? 'Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'SELECT b.id'? –

+0

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de ')' à la ligne 4 – PrashanD