SQL de mise à Jour à partir d'une jointure interne
Je suis l'aide de microsoft Access.
Si cette requête:
(SELECT FERMENT.FermentId
FROM FERMENT
INNER JOIN [BELGIUM BEER]
ON
FERMENT.FermentName = [BELGIUM BEER].FermentId ORDER BY [BELGIUM BEER].BeerId) a
retourne FermentId, comment puis-je mettre à jour une table différente avec cette colonne?
Exemple:
UPDATE EXAMPLETABLE
SET EXAMPLETABLE.FermentId = a.FermentId
FROM a
(SELECT FERMENT.FermentId
FROM FERMENT
INNER JOIN [BELGIUM BEER]
ON
FERMENT.FermentName = [BELGIUM BEER].FermentId ORDER BY [BELGIUM BEER].BeerId) a
Si je ne me trompe pas, vous avez besoin d'une relation entre
EXAMPLETABLE
et la chose que vous sélectionnez à partir, que vous pouvez utiliser quelque chose comme UPDATE EXAMPLETABLE SET EXAMPLETABLE.FermentId = (SELECT FERMENT.FermentId FROM FERMENT INNER JOIN [BELGIUM BEER] ON FERMENT.FermentName = [BELGIUM BEER].FermentId WHERE EXAMPLETABLE.relationFieldName = [BELGIUM BEER].relationField ORDER BY [BELGIUM BEER].BeerId)
OriginalL'auteur user1534664 | 2012-10-14
Vous devez vous connecter pour publier un commentaire.
En supposant que la sous-requête renvoie plus d'une valeur, vous avez besoin d'une deuxième clé pour se connecter (JOIN) entre les nouvelles valeurs et de la table que vous souhaitez mettre à jour (EXAMPLETABLE).
Dans ce cas, je voudrais essayer quelque chose comme cela:
Si ce n'est pas le cas et que la sous-requête renvoie une valeur unique, essayez quelque chose comme ceci:
Noter que dans ce cas, vous avez besoin pour garantir que la sous-requête ne retournera jamais plus d'une ligne!
Voulez-vous dire de la colonne ou d'enregistrement avec la ligne?
La ligne! Si la sous-requête renvoie plusieurs lignes, SQL ne sait pas laquelle des valeurs de mettre à jour la table avec. 🙂
la sous-requête renvoie 750 dossiers, et exampletable contient 750 dossiers. En gros, je veux mettre à jour exampletable.FermentId avec la 750 dossiers de la sous-requête.
Merci man, votre requête a fonctionné. J'ai été un moment difficile parce que je suis entrée dans le mauvais tables 😛
OriginalL'auteur Gidil
Pas sûr de ce que la relation de EXAMPLETABLE avec vos données, mais en général.
Dans l'Accès à l'ENSEMBLE de la partie est après la jointure, aussi sauter la partie select fr la commande par.
Devrait être quelque chose comme ceci
Si il doent travail essayez de construire le rejoindre dans le générateur de requêtes
OriginalL'auteur Arnoldiusss
Il n'est pas nécessaire de définir une relation entre les deux tables. Réponse 10 (Arnoldiusss) est presque correct et de loin le plus compréhensible et le plus court de solution. Et la manière la plus rapide dans l'exécution. Mais l'exemple de code est faux. Le code suivant est issu d'une de mes applications et fonctionne très bien dans MS ACCESS 2013.
Pour "la Bière Belge de Cas" (j'adore cette expression;-) ce serait:
OriginalL'auteur Cor Rutkowski