【发布时间】:2012-05-18 09:55:46
【问题描述】:
我有以下疑问:
SELECT * FROM my_users as U
RIGHT JOIN subscribers AS S ON S.userid = U.user_id
WHERE S.approved > 0 AND S.channel_id = 1 AND S.alert_level >= 90
如果我取消最后一个 AND 子句 (AND S.alert_level >= 90),搜索将完全按预期工作。离开最后一个 AND 子句,我得到一个空结果集。
显然,我检查了订阅者表以确保将返回的用户 ID 具有正确的 alert_level 并且他们都有 90,所以这应该返回 2 个用户......并且 S.alert_level 是一个 smallint(6)。
我在这里遗漏了什么明显的东西吗?
谢谢!
【问题讨论】:
-
这听起来很奇怪。您说您“检查了订阅者表以确保将返回的用户 ID 具有正确的警报级别”,但您为什么需要这样做?当您尝试“取消最后一个 AND 子句 (AND S.alert_level >= 90) 搜索完全按预期工作”时,您应该已经能够看到 alert_level。你没想过检查吗?现在可以查了吗?
-
砰!是的……只需要另一双眼睛!
-
我转贴为答案,以防您想编辑和/或接受它。