MySQL Rejoindre avec Insert combiné?
Est-il possible d'avoir une INSERTION à partir d'une table de référence si quelque chose existe?
Dire que c'est la requête pour insérer des données...
INSERT INTO `Test`.`Items` (
`Name` ,
`Type` ,
`Number`
)
VALUES (
'Pork', 'Sausage', 6
);
Et que j'ai une table de recherche appelé "Recherche", qui contient deux colonnes. "Type" et "Nombre". Ce que je veux, c'est que si quelque chose existe dans la "Recherche" de la table dans cette instance de Type Saucisse puis à tirer dans le "champ" Numéro de la table de recherche au lieu d'insérer le 6 dans l'instruction INSERT.
Espère que c'est clair!
OriginalL'auteur Lee Armstrong | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
MODIFIER: des échantillons Supplémentaires sur la base des observations ci-dessous.
À l'aide de
UNION ALL
à chaîne insère ensemble:À l'aide d'une table temporaire:
Si je voulais de multiples tables de recherche-dire pour une autre valeur, comment aurais-je de la structure? Donc, une autre table Lookup2 par exemple, où j'ai (à l'aide de cet exemple) de recherche le Nom de
Il ya un couple d'approches. Vous pourriez enchaîner les instructions SELECT avec un opérateur UNION ALL ou, si vous avez un assez grand nombre de valeurs à insérer, vous pouvez remplir une table temporaire avec l'ensemble de vos valeurs et ensuite se JOINDRE à l'encontre de la Recherche. Je vais vous donner des exemples de chacun de vous.
C'est génial, merci!
En fait, j'ai un problème lorsque que si la recherche n'existe pas, alors l'ensemble de l'insert ne fonctionne pas! Ceci est basé sur le premier échantillon. Vient de poster une nouvelle question stackoverflow.com/questions/6945332/...
OriginalL'auteur Joe Stefanelli