У меня есть 3 связанные таблицы.
- Пользователи, в которых я получаю следующие столбцы (имя пользователя).
- Представления, я получаю столбцы (идентификатор, название, эскиз и скорость). У него также есть столбец user_id, чтобы узнать, какой пользователь сделал загрузку.
- Избранное, я получаю 3 столбца (дата, id_submission, id_user)
Дело в том, что я просматриваю профиль пользователя и получаю его идентификатор, и я хотел бы показать материалы, которые они отметили как избранные. Более-менее работает, но не совсем так.
Код SQL:
переменная $user[0]["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";
С пользователем А я отметил как избранное представление пользователя Б. Но когда я просматриваю профиль пользователя А, он показывает мне одно и то же представление дважды.
Что-то не так с SQL, но я не совсем уверен, что. Я всегда делаю запросы внутри циклов, но я пытаюсь их улучшить и пытаюсь сделать их в одном, чтобы повысить производительность.
Я думаю, будет лучше, если вы удалите условие из внутреннего и поместите его в where: