आप सही कह रहे हैं कि NULL cannot be equal to anything
.
आप जो खो रहे हैं वह यह है कि NULL असमान नहीं हो सकता , या तो
।
NULL
किसी भी चीज़ की तुलना में हमेशा NULL
होता है . हाथ में समस्या यह है कि आपको LEFT JOIN
. मिल गया है गलत। यह काम करना चाहिए:
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;
vv
. के संदर्भ में आपके पास एक अतिरिक्त शर्त थी WHERE
. में खंड:AND vv.user_id != 39
. शायद उम्मीद है कि NULL != 39
योग्य होगा, लेकिन ऐसा नहीं है। इस संबंधित उत्तर में अधिक विवरण:
बाएं जॉइन के साथ क्वेरी 0 की गिनती के लिए पंक्तियों को वापस नहीं कर रही है
मूल रूप से तीन तकनीक हैं ऐसा करने के लिए:
उन पंक्तियों का चयन करें जो अन्य तालिका में मौजूद नहीं हैं