我正在尝试在我的数据库中找到最喜欢的照片。有PHOTOS,LIKES,USERS表。我试图找到最喜欢的照片和用户,他们只用LIKES和USERS发布了图片,却出现了错误。
SELECT
users.username,
photo_id,
COUNT(*) AS most_liked
FROM
likes
INNER JOIN users ON users.id=likes.user_id
GROUP BY
photo_id
ORDER BY
most_liked DESC
LIMIT
1;
错误1055(42000):SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列ig_clone.users.username,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by
不兼容
我可以只使用2张桌子吗?还是应该使用3rd张桌子?
答案 0 :(得分:1)
您需要使用子查询来查找最喜欢的照片(仅使用filterMessages
表)与实际照片信息(来自[HttpGet]
)表分开,然后将其与{ {1}}。我假设您的likes
表中有一个photos
列。
users