NOT IN
は使用しないでください サブクエリ付き。サブクエリの値がNULL
の場合、セマンティクスが間違っています。 。その場合、NOT IN
TRUEと評価されることはないため、行はまったく返されません。
代わりに、NOT EXISTS
を使用してください :
SELECT p.id, p.name
FROM players p
WHERE p.this = 1 AND
NOT EXISTS (SELECT 1
FROM players_online po
WHERE po.name = p.name AND po.this = 'that'
)
ORDER BY RAND()
LIMIT 3, 6;