Jointure-fusion occurrences récentes

DJ-ELA28 Messages postés 5 Statut Membre -  
DJ-ELA28 Messages postés 5 Statut Membre -

Bonjour à tous,

Je nouveau en mysql et je fais appel à vos lumières svp. Mon problème est le suivant : 

Je dispose d'une table A avec des enregistrements uniques  et d'une table B, contenant des des enregistrements avec des doublons, des triplons, voire plus , selon une date...

Je voudrais faire une colonne dans A  (my_column)  en faisant une LEFT JOIN avec les la table B mais seulement avec les occurrence récente 

exemple:

table A

Id

1

2

3

4

table B

Id         date

1          20/01/2022

2          15/02/2019

1          15/06/2022

3           22/04/2022 

4           12/04/2022

4           11/03/2022

1          11/05/2022

5           24/07/2022

5           11/02/2022

4           12/07/2022

résultat :

Table A

Id     Date

1      15/06/2022

2       15/02/2019

3       22/04/2022

4       12/07/2022

5       24/07/2022

Je vous en remercie par avance

Cordialement

DE

jour,


Windows / Chrome 95.0.4638.54

6 réponses

  1. jee pee Messages postés 31931 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     

    Bonjour,

    Peut être

    SELECT A.id, MAX(B.date) from A
    left join B on B.ID = A.ID
    GROUP BY A.ID
    ORDER BY A.ID

    mais avec une telle structure, on peut tout simplement faire

    SELECT id, MAX(date) from B
    GROUP BY ID
    ORDER BY ID

    0
  2. DJ-ELA28 Messages postés 5 Statut Membre
     

    Merci beaucoup JP, ça fonctionne . J'aurais une dernière demande indépendamment de la premiere svp. Je voudrais rajouter une nouvelle colonne à la table B de façon à numéroté les occurrences en fonction des dates exemple

    table B

    Id         date                      num

    1          20/01/2022           1   

    2          15/02/2019           1    

    1          15/06/2022           3

    3           22/04/2022         1

    4           12/04/2022         2

    4           11/03/2022         1

    1          11/05/2022          2

    5           24/07/2022        2

    5           11/02/2022        1

    4           12/07/2022        3

    Merci encore+++

    0
  3. jee pee Messages postés 31931 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     

    Je ne suis pas sur que l'on puisse faire cela en sql pur. Avec Oracle j'aurais utilisé du PL/SQL. Avec Mysql peut être une fonction ? mais je ne connais pas.


    0
  4. DJ-ELA28 Messages postés 5 Statut Membre
     

    Merci quand même JP. une dernière chose pour la requête que vous m'avez proposez comment le résultat sera généré directement dans la table A par ajout d'une nouvelle colonne

    Merci inifiniment

    DE

    Table A

    Id     Date

    1      15/06/2022

    2       15/02/2019

    3       22/04/2022

    4       12/07/2022

    5       24/07/2022

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DJ-ELA28 Messages postés 5 Statut Membre
     

    Bonjour,

    Je réitère ma demande ci-dessous. Pour rappel JP m'a fait une proposition, une requête pour avoir le résultat souhaité :

    SELECT A.id, MAX(B.date) from A
    left join B on B.ID = A.ID
    GROUP BY A.ID
    ORDER BY A.ID

    Or je voudrais que ce résultat apparaisse sur une nouvelle colonne créer dans la table la TABLE A.

    J'ai fait un  : alter into table A date DATE   # j'ai rajouté la colonne date dans un premier temps

    ensuite

    update from table A

    SELECT A.id, MAX(B.date) from A

    left join B on B.ID = A.ID GROUP BY A.ID ORDER BY A.ID

    SET A.date=B.date

    Est-ce que vous pourriez m'aider à résoudre cela svp ?

    En vous remerciant par avance

    DE

    0
    1. jee pee Messages postés 31931 Date d'inscription   Statut Modérateur Dernière intervention   9 994
       

      Je ferais plutot un
       

      UPDATE TABLE A as A
      set date = (select max(date) from table A as B where A.ID = B.ID group by B.ID)
      1
  7. DJ-ELA28 Messages postés 5 Statut Membre
     

    Merci bcp JP c parfait!

    Bonne soirée

    DE

    0