在我的数据库中,有一个表(喜欢)列出了用户喜欢的项目。
访问用户个人资料时,我需要确定我们共有多少个“喜欢”。
编写显示用户之间相互喜欢的查询的最佳方式是什么?
likes table
id | user | item | activated
-----------------------------------
1 | 3 | 14 | 1
2 | 4 | 14 | 1
在此示例中,我需要返回14。
最佳答案
假设应该是这样的:
select userViewer.item, items.itemName
from likes userViewer,
likes userProfile,
items
where userProfile.user = $profileUserId
and userViewer.user = $userViewer
and userProfile.item = userViewer.item
and items.item = userViewer.item
其中$ profileUserId-概要文件用户的userId和$ userViewer-当前用户的userId
例如,对带有“ items”表的“ join on”形式的相同查询:
select userViewer.item, items.itemName
from likes userViewer inner join likes userProfile
on userProfile.user = $profileUserId
and userViewer.user = $userViewer
and userProfile.item = userViewer.item
inner join items
on userViewer.item = items.item
关于php - 分析表以了解用户之间的相互喜欢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19890757/