mal compris. Le modificateur DISTINCT s'applique à toute la ligne - il indique qu'aucune ROWS identique ne sera retournée dans le jeu de résultats.
En regardant votre SQL, quelle valeur de plusieurs disponibles attendez vous dans la colonne created_at (par exemple)? Il serait impossible de prédire les résultats de la requête comme écrit.
De plus, vous utilisez deux fois le profil_comments dans votre SELECT. Il semble que vous essayez d'obtenir un compte du nombre de fois que chaque utilisateur a commenté. Si oui, ce que vous voulez faire est d'utiliser une requête AGGREGATE, groupée sur user_id et n'incluant que les colonnes qui identifient de façon unique un utilisateur avec un nombre de commentaires:
SELECT user_id, COUNT (*) FROM profile_comments O WH profile_id = 1 GROUP BY id_utilisateur
Vous pouvez ajouter la jointure aux utilisateurs pour obtenir le nom d'utilisateur si vous le souhaitez mais, logiquement, votre jeu de résultats ne peut pas inclure d'autres colonnes de profile_comments et produire toujours une seule ligne par user_id sauf si ces colonnes sont également agrégé d'une certaine manière:
SELECT ID_utilisateur, MIN (created_at) AS Au plus tôt, MAX (created_at) AS Dernier, COUNT (*) FROM profile_comments WHERE nom_profil = 1 GROUPE BY user_id
Et vous aurez besoin de déterminer laquelle des lignes multiples que vous voulez retourner. Fait une grande différence si vous sélectionnez max ou min ou quoi que ce soit. Aussi, si vous voulez que le dqata de chaque colonne provienne du même enregistrement, il peut être encore plus complexe que d'utiliser une fonction min(). – HLGEM
@HLGEM a absolument raison.DISTINCT avec des fonctions agrégées peut être fait, mais à moins que vous compreniez les implications, ce n'est clairement pas une bonne idée. –