Máte pravdu, že NULL cannot be equal to anything
.
Co vám chybí, je, že NULL nemůže být nerovné , buď
.
NULL
ve srovnání s čímkoli je vždy NULL
. Problém je v tom, že máte LEFT JOIN
špatně. Mělo by to fungovat:
SELECT v.user_id, v.version_id, vv.user_id
FROM versions v
LEFT JOIN versions_votes vv ON v.version_id = vv.version_id
AND vv.user_id = 39
WHERE vv.version_id IS NULL
ORDER BY v.created
LIMIT 1;
Měli jste další podmínku odkazující na vv
v WHERE
klauzule:AND vv.user_id != 39
. Pravděpodobně očekáváte, že NULL != 39
by se kvalifikovalo, ale nesplňuje. Další podrobnosti v této související odpovědi:
Dotaz s LEFT JOIN nevrací řádky pro počet 0
V zásadě existují tři techniky Chcete-li to provést:
Vyberte řádky, které nejsou uvedeny v jiné tabulce