Mysql
 sql >> Database >  >> RDS >> Mysql

ottenere follower su Twitter come usare MySQL

Questo dovrebbe farlo:

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

Rimuovi il COUNT se vuoi una lista di amici.

MODIFICA

Come richiesto, una spiegazione.

Sei JOIN ing una tabella a se stessa perché sei interessato alle relazioni tra le righe.

Ho deciso di alias le tabelle come me e you per rendere chiara la relazione. Quello che sta dicendo è quella colonna A può fare riferimento a me come seguace o tu come seguace. Colonna B si riferisce al seguitore

Se dovessi rinominare le colonne, la query sarebbe più chiara

se A -> follower e B -> followee , avremmo:

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

Quindi sta dicendo, prendi due copie di questa tabella e JOIN le righe in cui il followee in me è il seguace in you . Quindi, filtra e mostra solo le righe in cui il follower è in me è il followee in you ... catturando il tuo desiderio di avere (A == B) && (B == A)

Forse gli alias delle tabelle non sono eccezionali, ma spero che questo chiarisca un po'.

SECONDA MODIFICA Per i commenti di seguito, un modulo più chiaro potrebbe essere:

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