我尝试使用此查询从选定的健身房获取所有用户。Mysql - 在where子句中忽略状态
我的问题是查询忽略这一部分:ual.user_id = weekUsers.user_id
好像查询到符合我选择,没有如果用户在我要选择健身房检查日期的所有用户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或b和c被解释为a或b(b和c)。 – PetSerAl 2015-02-09 17:58:54