নিম্নলিখিত নিবন্ধটি আপনাকে দেখাবে কিভাবে সিনট্যাক্স এবং উদাহরণ সহ SQL সার্ভারে সাব-কোয়েরি ব্যবহার করতে হয়৷
এসকিউএল (সাবকোয়েরি) এ সাবকোয়েরি কি?
SQL সার্ভারে, একটি সাবকোয়েরি হল একটি ক্যোয়ারী যা অন্য কোয়েরিতে থাকে। আপনি SQL কমান্ডে প্রশ্ন তৈরি করতে পারেন। এই সাবকোয়ারিগুলি WHERE, FROM বা SELECT ক্লজে রয়েছে৷
৷দ্রষ্টব্য:
- সাবকোয়েরিগুলিকে INNER QUERY বা INNER SELECTও বলা হয়৷
- প্রধান ক্যোয়ারী যেটিতে একটি সাবকোয়েরি থাকে তাকে বলা হয় OUTER QUERY বা OUTER SELECT.
WHERE ক্লজ
সাধারণত সাবকোয়েরি WHERE ক্লজে থাকে। এই সাবকোয়ারিগুলিকে নেস্টেড কোয়েরি বা সাবকোয়েরি বলা হয়।
SELECT s.sanpham_id, s.sanpham_ten
FROM sanpham s
WHERE s.sanpham_id IN
(SELECT htk.sanpham_id
FROM hangtonkho htk
WHERE htk.soluong >
10);
এটি উপরের SELECT বিবৃতিতে সাব-কোয়েরি সেগমেন্ট:
(SELECT htk.sanpham_id
FROM hangtonkho htk
WHERE htk.soluong
> 10);
সাবকোয়েরি হ্যাংটনখো টেবিল থেকে 10-এর বেশি সংখ্যা সহ sanpham_id মানগুলি খুঁজে বের করার অনুমতি দেয়৷ তারপর IN শর্ত ব্যবহার করে মূল ক্যোয়ারী থেকে ফলাফল ফিল্টার করতে সাবকোয়েরি ব্যবহার করা হয়৷ .
নীচের মতো সাবকোয়ারিগুলিকে INNER Join হিসাবে লেখা যেতে পারে৷
SELECT s.sanpham_id, s.sanpham_ten
FROM sanpham s
INNER JOIN hangtonkho htk
ON s.sanpham_id = htk.sanpham_id
WHERE htk.soluong > 10;
অভ্যন্তরীণ যোগদান মূল সাবকোয়েরির চেয়ে আরও দক্ষতার সাথে ফিরে আসবে৷ এটাও মনে রাখা গুরুত্বপূর্ণ যে JOIN দ্বারা কোন প্রশ্ন পুনরায় লেখা হয় না।
The FROM clause
SELECT nhacung.nhacung_ten, truyvancon1.tong_sl
FROM nhacung,
(SELECT nhacung_id, SUM(donhang.soluong) AS tong_sl
FROM donhang
GROUP BY nhacung_id) truyvancon1
WHERE truyvanco
n1.nhacung_id = nhacung.nhacung_id;
এই উদাহরণে আমরা FROM ক্লজে নিম্নরূপ সাবকোয়েরি তৈরি করেছি:
(SELECT nhacung_id, SUM(donhang.soluong) AS tong_sl
FROM donhang
GROUP BY nhacung
_id) truyvancon1
এই সাবকোয়েরিটিও অ্যালিয়াস truyvancon1 এর সাথে যুক্ত৷ এই সাবকোয়েরি বা এর যেকোনো তথ্য ক্ষেত্রের উল্লেখ করতে ব্যবহৃত নাম হবে।
ধারা নির্বাচন করুন৷
সাধারণত SUM, COUNT, MIN বা MAX এর মতো সমষ্টি ফাংশন দ্বারা গণনা করার জন্য সাবকোয়েরিটি SELECT ক্লজে সেট করা হয় কিন্তু মূল ক্যোয়ারীতে গণনা করতে চায় না৷ পি>
SELECT n1.ho, n1.ten,
(SELECT MAX(luong)
FROM nhanvien n2
WHERE n1.nhanvien_id = n2.nhanvien_id) truyvancon2
FROM nhanvien n1
;
নীচে উপরের উদাহরণে তৈরি করা সাবকোয়েরি রয়েছে
(SELECT MAXong)
FROM nhanvien n2
WHERE n1.nhanvie
n_id = n2.nhanvien_id) truyvancon2
এই সাবকোয়েরিটিও অ্যালিয়াস truyvancon2 এর সাথে যুক্ত৷ এই সাবকোয়েরি বা এর যেকোনো তথ্য ক্ষেত্রের উল্লেখ করতে ব্যবহৃত নাম হবে।
SELECT ক্লজে সাবকোয়েরি রাখার কৌশলটি ব্যবহার করা হয় কারণ সাবকোয়েরি একটি একক মান প্রদান করে৷ এই কারণেই SUM, COUNT, MIN বা MAX-এর মতো সমষ্টি ফাংশনগুলি প্রায়শই সাবকোয়েরিতে ব্যবহৃত হয়৷