-1
votes

Mettre à jour la colonne de table1 et obtenez-la sur la table2

Comment puis-je créer une requête où je peux mettre à jour la date de la colonne Table1 que je l'obtiens sur la table2?

Voici un exemple des tables

table1: xxx

table2: < Pré> xxx

essentiellement je veux changer juste le start_date du 3 donc S006 ne changera pas. Comment puis-je accomplir cela en utilisant la requête? Je pensais en utilisant ensuite la table, mais je pense que ce n'est pas Ça ne va pas fonctionner.

J'ai besoin de basé sur deux colonnes ou plus pour la condition de ma mise à jour afin que je souhaite mettre à jour le tableau 1 où table1.stud_id = table2.stud_id et table1.exam_date = table2.exam_date


0 commentaires

3 Réponses :


3
votes

Joindre et mettre à jour

update t1 
set t1.stardate=t2.startdate,
t1.exam_date=t2.exam_date
from table1 t1 join table2 t2
on t1.stud_id=t2.stud_id
 where t2.stud_id='s003' -- if you just need s003 update


4 commentaires

Ok je vais essayer ça


Si je rejointe celui qui sera mis à jour est celui qui existe sur la table2 non?


Salut ma question est incomplète désolé. Pouvez-vous m'aider sur ma question modifiée?


@JOVS Réponse modifiée Il suffit d'ajouter des autres colonnes à la fois comme la 1ère une dans la mise à jour



1
votes

Vous pouvez également utiliser CTE aussi pour mettre à jour:

;With cte as
(
    select t1.start_date as t1date,t2.start_date as t2date from table1 t1
    join table2 t2
    on t1.stud_id=t2.stud_id
    and t1.exam_date=t2.exam_date

)

update cte set t1date=t2date


2 commentaires

Salut ma question est incomplète désolé. Pouvez-vous m'aider sur ma question modifiée?


Vous avez juste besoin d'ajouter 1 état de plus dans votre jointure



1
votes

Vous pouvez rejoindre les 2 tables:

UPDATE T1
SET Start_Date = T2.Start_Date
FROM Table1 AS T1
    INNER JOIN Table2 AS T2
        ON T1.stud_id = T2.stud_id
            AND T1.exam_date = T2.exam_date


0 commentaires