php - 使用内连接选择 id

标签 php mysql sql inner-join

我正在尝试构建用户个人资料,因此我从数据库中显示她的所有点赞。 但我想查看具有事件 session 的用户是否喜欢某些用户个人资料。

所以,表名是loves,结构是:

photo_id (int)
nick     (varchar)
date     (timestamp)

照片表结构:

photo_id (int)
path     (varchar)
title    (varchar)
category (varchar)
nick     (varchar)
date     (timestamp)

这就是我执行查询的方式:

SELECT photos.photo_id
FROM photos
INNER JOIN loves ON loves.nick = 'userProfileName'
WHERE loves.nick =  'userWithActiveSession'
AND photos.photo_id = loves.photo_id
ORDER BY loves.photo_id DESC 
LIMIT 100

此查询应返回具有事件 session 的用户喜欢的所有照片 ID,以及来自个人资料请求的用户的喜欢的照片。

示例

loves table:

nick         photo_id
userProfile  26  
userProfile  1000  
userProfile  27
userProfile  520
userSession  26  
userSession  680  
userSession  1000

因此查询应该只返回两个 photos_id(1000 和 26),因为两个用户都喜欢相同的 photo_id。

有什么方法可以修改此代码来完成我想要的操作吗?

最佳答案

所以您想要 X (photos.nick = X) 拥有且 Y 喜欢的所有照片?

SELECT photos.photo_id FROM photos INNER JOIN loves
ON loves.photo_id = photos.photo_id 
WHERE loves.nick = Y AND photos.nick = X
ORDER BY photos.photo_id DESC LIMIT 100

如果你想要 X 和 Y 都喜欢的照片,那么你需要将loves加入到自身中,将表的两个副本中的photo_id相互匹配,并调节一个表的昵称与X匹配,另一个表的昵称与Y匹配。 (见评论)

关于php - 使用内连接选择 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15590353/

相关文章:

MySQL根据一行的唯一性选择DISTINCT多列?

php - 如何在没有 "bind_param"的情况下进行更新

javascript - 通过 axios.post() 与数据库 react 按钮连接

PHP - 组合来自同一二维数组的 2 个元素

javascript - 当我在 vanilla js 中选择 <select> 选项时如何更改 <a> href

php - 获取浏览器选项卡索引/Id

php - 如何使用php和外部文件连接MySQL并控制打开和关闭DB

php - 为什么 JSON 只为我的查询返回 1 个图像输出?

php - Yii CDbCriteria 将 2 个属性与单个值进行比较

javascript - BigQuery 中的用户定义函数使用带点的列名称