J'utilise SQL Server pour mon projet, mais ma question ne semble pas spécifique au fournisseur.

J'ai deux tableaux et colonnes comme indiqué ci-dessous:

Master:
id
ok

Details:
id
master_id

Maintenant, je dois déplacer le champ et la valeur "ok" de la table principale vers la table des détails. Ils ressemblent à ceci:

Master:
id
ok (kept for copy of values, but will delete it later)

Details:
id
master_id
ok

J'ai créé le champ "ok" dans le tableau Détails. Comment puis-je copier sa valeur dans la table principale vers ses enregistrements correspondants dans la table de détails? Est-ce la bonne déclaration?

update Details set ok = (select ok from Master where master_id = id)
0
curious1 4 nov. 2019 à 04:53

1 réponse

Meilleure réponse

Chaque fois que plusieurs tables sont référencées dans une requête, vous devez qualifier toutes les références de colonne. Cela résoudra peut-être le problème que vous rencontrez:

update Details
    set ok = (select m.ok
              from Master m
              where details.master_id = m.id
             );
2
Gordon Linoff 4 nov. 2019 à 01:56