Daca te urmaresc si tu ma urmaresti, suntem prieteni

Am 2 tabele mysql

users

-uid
-username
-etc

followers

-id
-user_id //urmaritul
-user//urmaritorul

Daca eu $user['uid']; te urmaresc pe tine si tu pe mine as vrea sa te gasesc in lista de prieteni
Cum as putea sa fac asta?

Am inercat asta

$stmt = $conn->prepare("SELECT u.* FROM users AS u INNER JOIN followers AS f WHERE u.uid=f.user_id AND f.id=:uid");
$stmt->bindParam(':uid', $user['uid']);		

dar fara rezultat

Pai ce vrei sa iti returneze acel join cand tu au doua coloane cu acelasi numein tabelul followers

-id
-user_id //urmaritul
-id //urmaritorul

-id //urmaritorul → eventual follower_id

1 Like

Cred că îți trebuie două JOIN-uri pentru tabela de followers

SELECT u.* FROM users AS u
INNER JOIN followers AS f1 ON f1.user = u.uid AND f1.user_id = :uid
INNER JOIN followers AS f2 ON f1.user = f2.user_id AND f2.user = f1.user_id

E cam abstract, dar merge din ce am testat local

  • primul join face filtrare userilor după criteriul: sunt urmăritori ai userului cu uid = :uid
  • al doilea join filtrează după criteriul: sunt urmăriți și ei de uid = :uid (dar având în vedere că f1.user_id = :uid putem folosi direct f2.user = f1.user_id

Dacă nu merge let me know, și mai testez.

2 Likes

Perfect. Multumesc mult!

1 Like