Inner Join ব্যবহার

Microsoft Technologies - লিংক (LinQ) LINQ এ জয়েন অপারেশন (Join Operations in LINQ) |
194
194

Inner Join হল দুটি ডেটাসেট বা টেবিলের মধ্যে এমন একটি সম্পর্ক যেখানে শুধুমাত্র উভয় টেবিলের মিলিত রেকর্ডগুলি ফেরত দেওয়া হয়। LINQ to DataSet ব্যবহার করে Inner Join করা যায় যেখানে দুটি বা তার বেশি DataTable বা DataSet-এর মধ্যে মিলিত ডেটা বের করতে LINQ কুয়েরি ব্যবহার করা হয়।

LINQ to DataSet-এ Inner Join করতে join কিওয়ার্ড ব্যবহৃত হয়, যা দুইটি ডেটাসেট বা DataTable-কে নির্দিষ্ট একটি কলামের ভিত্তিতে মিলিত করে। নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে দুটি DataTable-এর উপর Inner Join ব্যবহার করা হয়েছে।


LINQ to DataSet-এ Inner Join এর ব্যবহার

১. উদাহরণ: পণ্যের তথ্য এবং পণ্যের অর্ডার ডেটা মেলানো

ধরা যাক, আপনার কাছে দুটি DataTable আছে:

  • Products: পণ্যের তথ্য, যার মধ্যে ProductID, ProductName, Category রয়েছে।
  • Orders: অর্ডার সম্পর্কিত তথ্য, যেখানে OrderID, ProductID, এবং Quantity রয়েছে।

আমরা এই দুটি টেবিলের ProductID কলামের উপর Inner Join করতে চাই।

using System;
using System.Data;
using System.Linq;

class Program
{
    static void Main()
    {
        // Products DataTable তৈরি
        DataTable products = new DataTable("Products");
        products.Columns.Add("ProductID", typeof(int));
        products.Columns.Add("ProductName", typeof(string));
        products.Columns.Add("Category", typeof(string));
        
        products.Rows.Add(1, "Product1", "Category1");
        products.Rows.Add(2, "Product2", "Category1");
        products.Rows.Add(3, "Product3", "Category2");

        // Orders DataTable তৈরি
        DataTable orders = new DataTable("Orders");
        orders.Columns.Add("OrderID", typeof(int));
        orders.Columns.Add("ProductID", typeof(int));
        orders.Columns.Add("Quantity", typeof(int));
        
        orders.Rows.Add(101, 1, 5);
        orders.Rows.Add(102, 2, 3);
        orders.Rows.Add(103, 1, 7);
        orders.Rows.Add(104, 3, 2);

        // LINQ কুয়েরি দিয়ে Inner Join করা
        var joinQuery = from product in products.AsEnumerable()
                        join order in orders.AsEnumerable()
                        on product.Field<int>("ProductID") equals order.Field<int>("ProductID")
                        select new
                        {
                            ProductName = product.Field<string>("ProductName"),
                            Category = product.Field<string>("Category"),
                            OrderID = order.Field<int>("OrderID"),
                            Quantity = order.Field<int>("Quantity")
                        };

        // Inner Join এর ফলাফল প্রিন্ট করা
        foreach (var item in joinQuery)
        {
            Console.WriteLine($"Product: {item.ProductName}, Category: {item.Category}, OrderID: {item.OrderID}, Quantity: {item.Quantity}");
        }
    }
}

আউটপুট:

Product: Product1, Category: Category1, OrderID: 101, Quantity: 5
Product: Product1, Category: Category1, OrderID: 103, Quantity: 7
Product: Product2, Category: Category1, OrderID: 102, Quantity: 3
Product: Product3, Category: Category2, OrderID: 104, Quantity: 2

এখানে Products এবং Orders টেবিলের মধ্যে ProductID কলামের উপর Inner Join করা হয়েছে। শুধুমাত্র সেই রেকর্ডগুলো ফলস্বরূপ আসবে যেখানে উভয় টেবিলের মধ্যে মিল রয়েছে।


Inner Join এর গুরুত্বপূর্ণ পয়েন্ট:

  • Join Condition: on কিওয়ার্ড ব্যবহার করে দুইটি টেবিলের মধ্যে মিলিত হওয়া কন্ডিশন নির্ধারণ করা হয়।
  • Multiple Joins: একাধিক টেবিলের মধ্যেও Join করা যেতে পারে, যেমন দুটি বা তার বেশি টেবিলের তথ্য একত্রিত করা।
  • Anonymous Type: এখানে select new ব্যবহার করে একাধিক কলাম একটি অ্যানোনিমাস টাইপে রিটার্ন করা হয়, যা প্রয়োজনে একটি নতুন অবজেক্টে মেলে দেখানো হয়।

LINQ to DataSet-এ Multiple Join

আপনি একাধিক টেবিলের সাথে Inner Join করতে চাইলে আরও বেশি join ক্লজ ব্যবহার করতে পারেন। নিচে তিনটি টেবিলের মধ্যে Inner Join করার উদাহরণ দেখানো হল।

using System;
using System.Data;
using System.Linq;

class Program
{
    static void Main()
    {
        // Products DataTable
        DataTable products = new DataTable("Products");
        products.Columns.Add("ProductID", typeof(int));
        products.Columns.Add("ProductName", typeof(string));
        
        products.Rows.Add(1, "Product1");
        products.Rows.Add(2, "Product2");
        
        // Orders DataTable
        DataTable orders = new DataTable("Orders");
        orders.Columns.Add("OrderID", typeof(int));
        orders.Columns.Add("ProductID", typeof(int));
        
        orders.Rows.Add(101, 1);
        orders.Rows.Add(102, 2);
        
        // Customers DataTable
        DataTable customers = new DataTable("Customers");
        customers.Columns.Add("CustomerID", typeof(int));
        customers.Columns.Add("CustomerName", typeof(string));
        
        customers.Rows.Add(1, "Customer1");
        customers.Rows.Add(2, "Customer2");

        // LINQ Query with Multiple Joins
        var joinQuery = from product in products.AsEnumerable()
                        join order in orders.AsEnumerable()
                        on product.Field<int>("ProductID") equals order.Field<int>("ProductID")
                        join customer in customers.AsEnumerable()
                        on order.Field<int>("OrderID") equals customer.Field<int>("CustomerID")
                        select new
                        {
                            ProductName = product.Field<string>("ProductName"),
                            CustomerName = customer.Field<string>("CustomerName"),
                            OrderID = order.Field<int>("OrderID")
                        };

        // Multiple Join Results
        foreach (var item in joinQuery)
        {
            Console.WriteLine($"Product: {item.ProductName}, Customer: {item.CustomerName}, OrderID: {item.OrderID}");
        }
    }
}

এই উদাহরণে Products, Orders, এবং Customers টেবিলের মধ্যে Inner Join ব্যবহার করা হয়েছে এবং তিনটি টেবিলের তথ্য একত্রে আনা হয়েছে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion