Mysql
 sql >> Base de données >  >> RDS >> Mysql

Nom de colonne en double sur JOIN dans mysql

Vous devez fournir une colonne aliasée dans la requête interne

SELECT COUNT( * )
FROM (

  SELECT t.*
  FROM `user` `t`
  JOIN `user_relation` r ON ( t.user_id = r.follower_id
  OR t.user_id = r.user_id )
  WHERE r.status = "active"
  AND (
    r.user_id =125
    OR r.follower_id =125
  )
  AND t.user_id !=125
  GROUP BY t.username
)sq

Puisque vous êtes intéressé par count(*) vous seul pouvez renvoyer soit t.* ou r.* ou n'importe quelle colonne, la condition étant que les noms de colonne dans la requête interne DOIVENT être unique ou si elles sont identiques dans les deux tables que préfixées avec le nom d'alias de table.