我有以下查询:
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)。< / p>
我错过了一些明显的东西吗?
谢谢!
答案 0 :(得分:1)
检查此查询的结果:
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
注意为该结果集中的每一行返回的S.alert_level
的值。它可能不会超过90.这就解释了为什么添加最后一个条件不会给你任何行。