sql >> Databáze >  >> RDS >> Mysql

mySQL 'kde název NENÍ IN' nefunguje?

Nepoužívejte NOT IN s poddotazy. Pokud je nějaká hodnota v poddotazu NULL, má špatnou sémantiku . V takovém případě NOT IN nikdy nevyhodnotí jako TRUE, takže nejsou vráceny žádné řádky.

Místo toho použijte 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;



  1. MySQL vrátí první řádek spojené tabulky

  2. ScaleGrid PostgreSQL na cloudové infrastruktuře VMware

  3. Vyhledávací tabulka DATUM (1990/01/01:2041/12/31)

  4. Získejte datum začátku týdne a datum konce týdne z čísla týdne