SQL in Hindi Subqueries




Subquery एक Inner Query और Nested Query की एक Query में एक Query होती है.

SQL Subquery आमतौर पर SQL Statemen के WHERE Clause में Add कर दी जाती है.

SELECT Statement का उपयोग करने के लिए Value को कैसे Search करना है जब आपको पता चलता है लेकिन Database में Exact Value नहीं है तब Maximum Time के लिये एक Subquery का उपयोग किया जाता है.

Subqueries Multiple Tables से Data को वापस करने का एक Optional तरीका है.

Subqueries का उपयोग बहुत से SQL Statement के साथ Comparision Operators जैसे =, <,>,> =, <= आदि के साथ किया जा सकता है.

Syntax

SELECT column-names
   FROM table-name1
      WHERE value IN (SELECT column-name
         FROM table-name2 
      WHERE condition)

SQL Subqueries Example

इस Example मे आप Subqueries का उपयोग करने की आवश्यकताओं को सीखेंगे. यहाँ पर हमारे पास Common Field जिनमे 'StudentID' के साथ निम्नलिखित दो Tables है जिनमे Student और Marks है.

Student ID Name
A001 Anna
A002 Muffy
A003 Bettie
A004 Betty
A005 Emma
A006 Sarah
A007 Chaitali
A008 Khilan

Student ID Total Marks
A001 97
A002 78
A003 96
A004 87
A005 85
A006 83
A007 70
A008 87

अब हम सभी Students की पहचान करने के लिए एक Query लिखना चाहते हैं, जो Students Id 'A002' के Students के मुकाबले बेहतर Marks प्राप्त करते हैं, लेकिन हम A002 के Marks नहीं जानते हैं.

समस्या का समाधान करने के लिए हमें दो Query की आवश्यकता होती है. एक Query 'A002' के Marks Total_marks Field में Store होते है और एक दूसरी query उन Students को पहचानती है जो पहली Query के Result से बेहतर Marks प्राप्त करते हैं.

First Query

SELECT *  
FROM `marks`  
WHERE studentid = 'A002';

Output

Student ID Total Marks
A002 78

Second query

SELECT a.studentid, a.name, b.total_marks
FROM student a, marks b
WHERE a.studentid = b.studentid
AND b.total_marks >78;

Output

Student ID Name Total Marks
A001 Anna 97
A003 Bettie 96
A004 Betty 87
A005 Emma 85
A006 Sarah 83
A008 Khilan 87

SQL Code

SELECT a.studentid, a.name, b.total_marks
FROM student a, marks b
WHERE a.studentid = b.studentid AND b.total_marks >
(SELECT total_marks
FROM marks
WHERE studentid =  'A002');

Output

Student ID Name Total Marks
A001 Anna 97
A003 Bettie 96
A004 Betty 87
A005 Emma 85
A006 Sarah 83
A008 Khilan 87