Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Doppelter Spaltenname bei JOIN in mysql

Sie müssen eine Alias-Spalte in der inneren Abfrage angeben

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

Da Sie an count(*) interessiert sind nur Sie können entweder t.* zurückgeben oder r.* oder eine beliebige Spalte , wobei die Bedingung darin besteht, dass die Spaltennamen in der inneren Abfrage MUSS sind eindeutig sein oder wenn sie in beiden Tabellen gleich sind, dann mit dem Präfix des Tabellen-Aliasnamens.