Я пытаюсь использовать этот запрос, чтобы получить всех пользователей из выбранного тренажерного зала.Mysql - Игнорированное состояние в том, где статья
Моя проблема заключается в том, что запрос игнорирует эту часть: ual.user_id = weekUsers.user_id
Похоже, запрос принимает все идентификаторы пользователей, которые соответствуют даты я выбрал без проверки, если это пользователи в тренажерном зале, я хочу, чтобы выбрать.
На изображении, который я положил, вы можете видеть, что ual.user_id
и weekUsers.user_id
не равны, и все же я получил их в результатах.
Вот мой запрос:
SELECT count(ual.user_id), FROM_DAYS(TO_DAYS(ual.time) -MOD(TO_DAYS(ual.time) -1, 7)) as weekNum,
ual.user_id, weekUsers.user_id, u.id, u.gym
FROM user_activity_log ual
LEFT OUTER JOIN user u
ON u.gym = 3
LEFT OUTER JOIN (SELECT ualWeek.user_id FROM user_activity_log ualWeek
GROUP BY FROM_DAYS(TO_DAYS(ualWeek.time) -MOD(TO_DAYS(ualWeek.time) -1, 7)), ualWeek.user_id
HAVING count(ualWeek.user_id) > 1) weekUsers
ON u.id = weekUsers.user_id
WHERE
(ual.time BETWEEN '2014-02-09' AND '2015-02-09') OR (('2014-02-09' IS NULL) OR ('2015-02-09' IS NULL))
AND ual.user_id = weekUsers.user_id
GROUP BY ual.user_id
'a OR b AND c' интерпретируется как' a OR (b AND c) '. – PetSerAl