我有3個表:多內連接MySql中不工作
useractivitylog
id userid activity_type activity_id date
將存儲所有用戶活動。
requestfriend
opid userid friendid requesttime message source requesttype friendemail status
將存儲的朋友詳細介紹。 userid and friendid可以是用戶的ID。如果用戶A發送朋友的要求給用戶B,然後用戶標識將包含的ID和friendid將是B的ID,因此無論如何B是A的朋友,A是B.
的朋友auth_user_profiles
id user_id first_name last_name profileimage
,其存儲用戶簡檔信息。
我需要的是從useractivitylog表中選擇我所有的朋友活動。我試着用下面的查詢。但它沒有奏效。
echo "select ua.*,rf.opid,aup.user_id,aup.first_name,aup.last_name,
aup.profileimage from useractivitylog as ua INNER JOIN requestfriend as rf
INNER JOIN auth_user_profiles as aup on
aup.user_id= IF (rf.userid='$userid',rf.friendid,rf.userid)
WHERE (rf.userid=$userid or rf.friendid=$userid)
and rf.status='2' and ua.userid!=$userid";
這裏,$userid
是我的用戶ID。其實我想要的是檢索配置文件信息和我的朋友的用戶的活動。但是請知道,即使userid不在我的好友列表中,它也會返回useractivitylog表中的所有行。
任何人都可以幫助我找到適當的查詢。提前致謝。
你能解釋*但它沒有工作*?任何錯誤或其他內容 –
即使用戶在useractivitylog表中不是我的朋友,它也會返回所有行。 – Jenz
你有兩個JOIN,但在ON子句中只有一個條件,這似乎可能是罪魁禍首。 – RobP