Ich habe 2 Tabellen zu erhalten:Mysql mehrere Join-Tabelle zu Benutzerdaten
Tabelle - Benutzer
userId || username || profileImage
------------------------------------
1 || aa || aaaaa.png
2 || bb || bbbb.png
3 || cc || cccc.png
4 || dd || dddd.png
Tabelle - Beziehung
relationshipId || user1 || user2 || status
-----------------------------------------------
1 || 1 || 2 || 0
2 || 1 || 3 || 1
3 || 1 || 4 || 1
4 || 2 || 4 || 1
Deshalb möchte ich die Details Alle Benutzer (3,4), für die 1 Anfrage und Status gesendet hat, werden als 1 akzeptiert.
Etwas, was ich versucht:
$stmt = $this->db->prepare("
SELECT users.uId
, users.username
, users.profilePic
from users
JOIN relationship
WHERE (relationship.user_one_Id = :profileUserId || relationship.user_two_Id=:profileUserId)
AND relationship.statusCode=:statusCode
AND users.uId != :profileUserId
LIMIT 6
");
$stmt->bindvalue(":statusCode", 1);
$stmt->bindparam(":profileUserId", $profileUserId);
$stmt->execute();
Aber diese Abfrage gibt mir Reihen einschließlich derer, mit denen bin ich nicht zu Freunden. Also, wo bin ich falsch gelaufen?
Was ist '$ profileUserId'? – RomanPerekhrest
ist die ID des Profils, das ich betrachte .. welches mein eigenes Profil sein kann, jeder andere Benutzer ist im System. –
Beachten Sie, dass LIMIT ohne ORDER BY ziemlich bedeutungslos ist – Strawberry