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 AND S.alert_level >= 90

最後のAND句(AND S.alert_level> = 90)を削除すると、検索は期待どおりに機能します。最後のAND句をそのままにしておくと、空の結果セットが得られます。

明らかに、サブスクライバーテーブルをチェックして、返されるユーザーIDが正しいalert_levelであり、すべてが90であるため、2人のユーザーが返されるはずです...そしてS.alert_levelはsmallint(6)です。

ここで明らかな何かが欠けていますか?

ありがとう!

4

1 に答える 1

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を超えていません。これが、最後の条件を追加しても行が表示されない理由を説明しています。

于 2012-05-09T20:40:39.897 に答える