Maison > Questions et réponses > le corps du texte
J'ai deux tables nommées "Utilisateurs" et "Paiements". Dans Paiement, il existe une clé étrangère vers la table des utilisateurs. Il s'agit d'un enregistrement du calendrier de paiement.
从付款中选择 id,User_id;
id | ID_utilisateur |
---|---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 2 |
Mais mon résultat attendu est le suivant.
id | ID_utilisateur |
---|---|
1 | 1 |
3 | 2 |
4 | 3 |
Je veux uniquement les premières données de chaque User_id en SQL.
P粉5101277412023-09-12 18:21:17
Vous pouvez utiliser la clause GROUP BY sur la colonne User_id.
P粉2620731762023-09-12 14:14:03
Essayez ça...
SELECT p1.id, p1.user_id FROM payment p1 WHERE p1.id IN (SELECT MIN(p2.id) FROM payment p2 GROUP BY p2.user_id)
Supposons que « premier » fasse référence à la valeur minimale de id
dans le tableau de paiement de cet utilisateur, et que vous ayez également besoin de plus de détails dans le tableau de paiement ou d'effectuer d'autres opérations dessus...
Si vous voulez juste l'identifiant de paiement MIN, faites simplement ceci :
SELECT MIN(id), user_id FROM payment GROUP BY user_id