Subquery के साथ IN/NOT IN
IN एक subquery जो list return करता है उसमें membership test करता है।
In this page:
Syntax
SELECT columns
FROM table_name
WHERE column IN (SELECT column FROM other_table WHERE condition);
Subquery के साथ IN/NOT IN
WHERE col IN (SELECT ...) उन rows को रखता है जिनकी value subquery result में appear होती है। NOT IN बाकी रखता है, लेकिन अगर subquery result में कोई NULL हो, NOT IN बिल्कुल कोई rows return नहीं करता, क्योंकि NULL के साथ comparisons unknown हैं।
Subquery के अंदर NULLs filter करें या NOT EXISTS इस्तेमाल करें।
Note:
एक NOT IN subquery के अंदर WHERE col IS NOT NULL add करें।
उदाहरण: IN/NOT IN with subquery
CREATE TABLE a (v INTEGER);
CREATE TABLE b (v INTEGER);
INSERT INTO a VALUES (1), (2), (3), (4);
INSERT INTO b VALUES (2), (4), (NULL);
SELECT v FROM a WHERE v IN (SELECT v FROM b) ORDER BY v;
SELECT v FROM a WHERE v NOT IN (SELECT v FROM b);
SELECT v FROM a WHERE v NOT IN (SELECT v FROM b WHERE v IS NOT NULL) ORDER BY v;
-- Output:
-- v
-- 2
-- 4
-- v
-- v
-- 1
-- 3
Login to try C/C++/Java/PHP code in the editor
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the
view already swaps in the hi_ translation fields (or blanks these
out if untranslated), so this renders correctly for both languages
without a lang_code check here. #}
आम गलतियां
- NULLs की वजह से NOT IN कुछ return न करना
- joins की बजाय huge subqueries के साथ IN इस्तेमाल करना
- subquery में कई columns return करना
चैप्टर सारांश
- IN एक subquery की list इस्तेमाल करता है
- NOT IN list में NULL के साथ fail होता है
- NULLs filter करें या NOT EXISTS इस्तेमाल करें
- Subquery को एक column return करना चाहिए
🔒
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: