我决定创建你可能认识的人系统,但我已经解决了一个问题,我似乎需要加入三个表才能带来相关结果。
目的是根据我朋友的朋友在数据库表中检查可能认识的朋友(if user1 = user2 and user2 = user4 posibile user1 knows user4, user4 is a suggestion)
我已经使用以下代码来检查这一点,并且正在按计划工作。
SELECT `friendpin` AS `possible_friend_id`
FROM `pinme`
WHERE `senderpin`
IN (
SELECT `friendpin`
FROM `pinme`
WHERE `senderpin` = $userlogged
)
AND `friendpin` NOT
IN (
SELECT `friendpin`
FROM `pinme`
WHERE `senderpin` = $userlogged
)
AND NOT `friendpin` = $userlogged
GROUP BY `possible_friend_id`
ORDER BY COUNT( * ) DESC
LIMIT 0 , 3
因此,表中的建议人状态可能是REQUEST
他/她已经有一个待处理的请求,但仍显示为建议的朋友,或者在BLOCKED
表中建议的朋友被阻止但仍显示为建议的朋友。因此我想消除这种行为。建议的人不应该是REQUEST
桌子或BLOCKED
桌子的出口。
谁能帮我解决这个问题?
以下是 REQUEST
表、PINME
表和 BLOCKED
表结构
REQUEST TABLE:
senderpin - id of the person who send request
friendpin - receivers request id
BLOCKED TABLE:
user1_id - a person who block user2_id
user2_id - the blocked person by user1_id
PINME TABLE:
PINME table: the table which keep relations
structure: 1,2 2,2 | 4,8 8,4
senderpin - id of the person who send request
friendpin - receivers request id
谢谢并恭祝安康