mysql右连接在一个子句上返回空

时间:2012-05-09 20:29:00

标签: mysql join where

我有以下查询:

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>

我错过了一些明显的东西吗?

谢谢!

1 个答案:

答案 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.这就解释了为什么添加最后一个条件不会给你任何行。