Partage
  • Partager sur Facebook
  • Partager sur Twitter

Prendre la dernière ligne d'une autre table

Est-ce possible en une seule requête ?

    2 janvier 2020 à 17:41:22

    Bonjour, 
    je tente de faire une requete un peu complexe. J'ai deux tables, user et user_phone. 
    utilisateur contient : toto et tata. 
    utilisateur_ville contient : toto, 01/01/2019, paris; toto, 01/03/2019, Marseilles; tata, 04/02/2016, Madrid; tata, 21/12/2019, Lyon. 
    Je voudrais, en une seule requete, lister les utilisateurs, et la dernière ville dans laquelle ils ont habités. Possible ? 
    PS : Je suis sous PostGreSQL. 
    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2020 à 9:09:56

      Bonjour,

      Il faut dans un premier temps récupérer la dernière date par utilisateur. Ne connaissant pas les noms exacts des colonnes je suppose ceci :

      -- Date maxi par utilisateur
      SELECT
      	utilisateur,
      	MAX( date ) AS max_date
      FROM utilisateur_ville
      GROUP BY utilisateur

      Maintenant il faut utiliser ce résultat comme sous-requête de départ pour une requête plus large :

      SELECT
      	MD.utilisateur,
      	MD.max_date,
      	UV.ville
      FROM
      	(
      		-- Date maxi par utilisateur
      		SELECT
      			utilisateur,
      			MAX( date_ville ) AS max_date
      		FROM utilisateur_ville
      		GROUP BY utilisateur
      	) MD
      		INNER JOIN utilisateur_ville UV
      			ON MD.utilisateur = UV.utilisateur
      			AND MD.max_date = UV.date_ville
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Prendre la dernière ligne d'une autre table

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown