Lesson – 43 : Sub Queries

ડેટાબેઝ મેનેજમેન્ટ સિસ્ટમ (DBMS) અને SQL પ્રોગ્રામિંગમાં Sub Query (સબ ક્વેરી) એક ખૂબ જ મહત્વપૂર્ણ અને શક્તિશાળી કન્સેપ્ટ છે. સબ ક્વેરીને આપણે એક એવી ક્વેરી માનીએ છીએ જે બીજી ક્વેરીની અંદર લખાય છે અને મુખ્ય ક્વેરીને જરૂરી ડેટા ઉપલબ્ધ કરાવે છે. સબ ક્વેરીના ઉપયોગથી આપણે કૉમ્પ્લેક્સ ડેટા પ્રોસેસિંગ, ફિલ્ટરિંગ અને રિલેશન આધારિત ડેટા ફેચિંગ સરળતાથી કરી શકીએ છીએ.


Sub Query શું છે?

Sub Query એટલે કે Query અંદર Query.
મૂળ ક્વેરીને Outer Query અને તેમાં લખાયેલી આંતરિક ક્વેરીને Inner Query અથવા Sub Query કહેવામાં આવે છે.

સબ ક્વેરી હંમેશા બે વસ્તુ માટે ઉપયોગી રહે છે:

  1. Outer Query ને value આપવા

  2. Data filtering વધુ શાર્પ બનાવવા


Sub Query કેમ ઉપયોગ થાય છે?

  • મુશ્કેલ ડેટાને સરળ રીતે મેળવવા

  • એક જ SQL સ્ટેટમેન્ટમાં બહુ-સ્ટેપ ડેટા પ્રોસેસિંગ

  • Multi-tableમાંથી ડેટા લાવવા

  • Nested conditions ચેક કરવા


Sub Query ક્યાં લખી શકાય?

Sub Query SQL ના નીચેના ભાગોમાં લખી શકાય છે:

  • WHERE clause

  • HAVING clause

  • FROM clause (અહીં Sub Query ને Derived Table કહેવામાં આવે છે)

  • SELECT clause


Sub Queries ના પ્રકાર

1. Single Row Sub Query

જે માત્ર એક જ પંક્તિ (one row)નું પરિણામ આપે.
ઉદાહરણ:

SELECT name, salary
FROM employee
WHERE salary > (SELECT AVG(salary) FROM employee);
2. Multiple Row Sub Query

જે બહુ પંક્તિઓનું પરિણામ આપે.
આમાં IN, ANY, ALL ઑપરેટર ઉપયોગ થાય છે.

SELECT name
FROM employee
WHERE dept_id IN (SELECT dept_id FROM department WHERE location='Ahmedabad');
3. Nested Sub Query

જેમાં એક સબ ક્વેરીની અંદર બીજી સબ ક્વેરી હોય.

SELECT *
FROM employee
WHERE salary = (SELECT MAX(salary)
FROM employee
WHERE dept_id = (SELECT dept_id FROM department WHERE name='IT'));
4. Correlated Sub Query

જેમાં Sub Query Outer Query પર આધારિત હોય છે.

SELECT name
FROM employee e
WHERE salary > (SELECT AVG(salary) FROM employee WHERE dept_id = e.dept_id);

Sub Query ના ફાયદા

  • કૉમ્પ્લેક્સ SQLને સરળ બનાવે

  • ડેટા ફિલ્ટરિંગ વધારે શક્તિશાળી બનાવે

  • Multi-level conditions હેન્ડલ કરવા સરળ

  • Temporary table બનાવવાની જરૂર નથી પડે

Sub Query vs Join

Sub Query Join
Nested query Tables જોડીને data લાવે
વાંચવામાં સરળ ઝડપથી ચાલે
ક્યારેક slow હાઈ performance

ઉપયોગના પ્રેક્ટિકલ ઉદાહરણો

1. સર્વોચ્ચ પગાર ધરાવતા એમ્પ્લોયી
SELECT name
FROM employee
WHERE salary = (SELECT MAX(salary) FROM employee);
2. IT વિભાગમાં કામ કરતા કર્મચારીઓ
SELECT name
FROM employee
WHERE dept_id = (SELECT dept_id FROM department WHERE name='IT');

Sub Query SQL માં એક શક્તિશાળી અને ઉપયોગી ટૂલ છે. તે ડેટાને વધારે અસરકારક રીતે ફિલ્ટર કરાવવામાં અને કૉમ્પ્લેક્સ સમસ્યાઓ હલ કરવામાં મદદ કરે છે.
જોઈન્ટ્સ સાથે મળીને તેનો ઉપયોગ ડેટાબેઝ ઑપરેશનને વધુ સુઘડ અને ફાસ્ટ બનાવે છે.