MySQL insert (insert into table (colonnes) instruction select)
Je suis en train d'insérer des valeurs dans les colonnes sélectionnées de la table, mais seulement insérer les résultats d'une base de données MySQL déclaration. l'instruction select fonctionne correctement par lui-même et renvoie les résultats.
lorsqu'il est combiné avec l'instruction insert il échoue avec
error incorrect syntax near `dedspgoods`.`case number`.
Quelqu'un peut m'aider avec la syntaxe correcte? mon faux syntaxe est comme ci-dessous:
insert into despgoods_alldetails
(`case number`, weight, customer, transporttypename)
values
( select despgoods.`case number`
, despgoods.weight
, despgoods.customer
, customers.transporttypename
from despgoods
inner join customers
on despgoods.customer = customers.customer )
Qu'est-ce que le
le select qui fonctionne est:
sélectionnez
Veuillez noter que chaque champ a '' autour d'eux, tout n'est pas appliqué lors de la soumission de commentaires. Merci
Il a probablement backquotes:
SELECT
qui fonctionne?le select qui fonctionne est:
sélectionnez
despgoods
.case number
,despgoods
.weight
,despgoods
.customer
,customers
.transporttypename
de despgoods inner join clients sur despgoods.customer
=customers
.customer
)Veuillez noter que chaque champ a '' autour d'eux, tout n'est pas appliqué lors de la soumission de commentaires. Merci
Il a probablement backquotes:
`weight`
bien, pas des apostrophes: 'weight'
OriginalL'auteur Smudger | 2011-10-10
Vous devez vous connecter pour publier un commentaire.
Si c'est le
SELECT
qui fonctionne:Ensuite, essayez ceci (notez qu'il n'est pas
VALUES
clause si vous souhaitez insérer le résultat d'uneSELECT
:Il suffit de noter que, avec
INSERT INTO
vous l'utilisationVALUES
avec une liste de lignes ou unSELECT
.Et essayez de ne pas avoir des espaces dans la table ou la colonne nom. Vous pouvez utiliser
case_number
ouCaseNumber
. Cela rend plus facile que vous n'avez pas à backquote à chaque fois.Merci pour les conseils, prêts à les utiliser. merci encore.
OriginalL'auteur ypercubeᵀᴹ
Comme indiqué par @EdHeal, vous aurez besoin de joindre
case number
entre guillemets ou de backticks comme il y a un espace dans le nom de la colonne (le fait queCASE
est un mot réservé est en réalité qu'un détail intéressant, mais ce n'est pas ce qui rompt la requête dans ce cas).OriginalL'auteur Romain
case
est un mot réservé. Besoin de mettre le numéro de l'affaire " dans les citations.essayez de modifier votre question. Collez le code dans votre question, puis sélectionnez-le et appuyez sur le Code icône:
{}
. Cela permet de formater votre code comme le code.OriginalL'auteur Ed Heal
ici, il va
. qui devrait fonctionner correctement. Souvenez-vous de ne pas les noms de vos variables avec des espaces, parce qu'il peut obtenir de véritables délicat. Je pense que vous avez eu une erreur dans le numéro de l'affaire, car il y a un espace entre les deux, lors de l'affaire est une fonction MySQL. Laissez-moi savoir si vous avez besoin de rien d'autre.
OriginalL'auteur Nathan