কম্পিউটার টিউটোরিয়াল

MySQL-এ UNION ALL এবং LIMIT ব্যবহার করে একাধিক টেবিল থেকে মোট রো সীমাবদ্ধ করা

MySQL-এ একাধিক টেবিল থেকে ডেটা নিয়ে মোট রো সংখ্যা সীমাবদ্ধ করতে UNION ALL এবং সাবকোয়ারিতে LIMIT ব্যবহার করা হয়।

তিনটি টেবিল তৈরি

CREATE TABLE demo3 (value INT);
INSERT INTO demo3 VALUES (10), (20), (30);

CREATE TABLE demo4 (value1 INT);
INSERT INTO demo4 VALUES (40), (10), (60);

CREATE TABLE demo5 (value2 INT);
INSERT INTO demo5 VALUES (100), (60), (50);

প্রতিটি টেবিল থেকে টপ-২ নিলে মোট টপ-২ (সাবকোয়ারি + UNION ALL + LIMIT)

mysql> SELECT tbl.* FROM (
    -> (SELECT * FROM demo3 ORDER BY value DESC LIMIT 2)
    -> UNION ALL
    -> (SELECT * FROM demo4 ORDER BY value1 DESC LIMIT 2)
    -> UNION ALL
    -> (SELECT * FROM demo5 ORDER BY value2 DESC LIMIT 2)
    -> ) tbl
    -> LIMIT 2;

ফলাফল

+-------+
| value |
+-------+
| 30    |
| 20    |
+-------+

ব্যাখ্যা: প্রতিটি টেবিল থেকে ডেসেন্ডিং অর্ডারে টপ-২ নেওয়া হয়েছে (demo3: 30,20; demo4: 60,40; demo5: 100,60)। UNION ALL দিয়ে জোড়ানো হয়েছে। আউটার LIMIT 2 দিয়ে মোট ২টি রো নেওয়া হয়েছে। যেহেতু demo3-এর 30, 20 সবচেয়ে ছোট, সেগুলো ফলাফলে এসেছে (অর্ডার বাই না থাকলে অনির্দিষ্ট)। সঠিক টপ-২ পেতে আউটার কোয়ারিতে ORDER BY value DESC যোগ করুন।

  1. MySQL-এ শুধু শেষ ৫টি রেকর্ড দেখানো (LIMIT এবং ORDER BY DESC)

  2. MySQL-এ INFORMATION_SCHEMA এবং SUM() ব্যবহার করে একাধিক ডাটাবেসের টেবিল রো সংখ্যা যোগ করুন

  3. MySQL에서 데이터베이스의 테이블 개수 조회하기

  4. MySQL-এ JOIN ব্যবহার করে দুটি টেবিলের রেজাল্ট মার্জ করা