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 31980 Date d'inscription   Statut Modérateur Dernière intervention   10 015
     

    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 31980 Date d'inscription   Statut Modérateur Dernière intervention   10 015
     

    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 31980 Date d'inscription   Statut Modérateur Dernière intervention   10 015
       

      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