sql >> Base de Datos >  >> RDS >> Mysql

obtener seguidores en Twitter como usando MySQL

Esto debería hacerlo:

SELECT COUNT(me.A) FROM social AS me 
   INNER JOIN social AS you ON me.B = you.A 
WHERE me.A = you.B AND me.A = 1

Eliminar el COUNT si quieres una lista de amigos.

EDITAR

Según lo solicitado, una explicación.

Eres JOIN ing una tabla a sí mismo porque está interesado en las relaciones entre las filas.

Decidí crear un alias para las tablas como me y you para aclarar la relación. Lo que está diciendo es que la columna A puede referirse a mí como el seguidor o tú como seguidor. Columna B se refiere al seguido

Si cambiara el nombre de las columnas, la consulta se leería más claramente

si A -> follower y B -> follower , tendríamos:

SELECT COUNT(me.follower) FROM social AS me 
   INNER JOIN social AS you ON me.followee = you.follower
WHERE me.follower = you.followee AND me.follower = 1

Entonces está diciendo, toma dos copias de esta tabla y JOIN las filas donde el seguidor en me es el seguidor en you . Luego, filtre y muestre solo las filas donde el seguidor está en me es el seguidor en you ... allí capturando tu deseo de tener (A == B) && (B == A)

Tal vez los alias de la tabla no sean tan buenos, pero espero que eso aclare un poco.

SEGUNDA EDICIÓN Según los comentarios a continuación, una forma más clara puede ser:

SELECT COUNT(me.A) FROM social AS me 
   INNER JOIN social AS you ON me.A = you.B AND me.B = you.A
WHERE me.A = 1