我有 3 个相关的表。
- 用户,我在其中获得以下列(用户名)。
- 提交,我得到列(id、title、thumbnail 和 rate)。它还有 user_id 列,可以知道是哪个用户进行了上传。
- 收藏夹,我得到 3 列(日期、id_submission、id_user)
问题是,我正在查看用户的个人资料并获取他们的 ID,并且我想显示他们标记为收藏的提交。它或多或少有效,但并不完全正确。
SQL 代码:
变量$user[0]["id"]
是您正在查看的用户的 ID。
$query = "SELECT f.date, s.id, s.title, s.rate, s.thumbnail, u.username
FROM favorites AS f
INNER JOIN submissions AS s
ON f.id_submission = s.id
INNER JOIN users AS u
ON f.id_user = ".$user[0]["id"]."
ORDER BY f.date DESC LIMIT 6";
对于用户 A,我已将用户 B 的提交标记为收藏。但是当我查看用户 A 的个人资料时,它向我显示了两次相同的提交。
SQL 出了点问题,但我不太确定是什么问题。我总是在循环中进行查询,但我正在尝试改进它们并尝试将它们合二为一以提高性能。
我认为最好从内部删除条件并将其放在以下位置: