← Back to PostgreSQL Course | Chapter 8: Subqueries & CTEs | Lesson 4 of 7

Subquery के साथ IN/NOT IN

IN एक subquery जो list return करता है उसमें membership test करता है।
Syntax
sql
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

sql
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
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. #}
आम गलतियां
  1. NULLs की वजह से NOT IN कुछ return न करना
  2. joins की बजाय huge subqueries के साथ IN इस्तेमाल करना
  3. 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:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.