Web
Analytics
Inner Joins in LINQ with example | Angular | ASP.NET Tutorials

For Consultation : +91 9887575540

Stay Connected :

Joins in LINQ

Join clause: Join take two inputs compare and join them and gives single output sequence.

As it compares two input sequence so that It is necessary that both inputs should have some common values.

To check equability LINQ uses equals method.

Join Types:

  1. Inner Join
  2. Outer Join
  3. Left Outer Join

In this blog we will learn inner Join Only.

To learn Inner joins I created a console application in visual C#.

Let first create two classes for items and their reviews.

public class Items

    {

        public int ItemNumber;

        public string ItemName;

    }

    public class PublicReview

    {

        public int ReviewId;

        public string Review;

    }

Any Item may have or may have not reviews.

Inner Join: It will compare ItemNumber of first sequence with ReviewId of second sequence. This join only returns matching items.

To get result let us initialize classes and their properties into main program.

Items[] totalitems ={

                                   new Items{ ItemNumber=1, ItemName="Computers"},

                                   new Items{ ItemNumber=2, ItemName="Electronics"},

                                   new Items{ ItemNumber=3, ItemName="TV"},

                                   new Items{ ItemNumber=2, ItemName="AC"},

                               };

            PublicReview[] PublicReviewforItems = {

                                                  new PublicReview{ ReviewId=1, Review="It is good"},

                                                  new PublicReview{ ReviewId=2, Review="It is Electronic Items and working fine"},

                                                  new PublicReview{ ReviewId=3, Review="It is best TV"},

                                                  new PublicReview{ ReviewId=4, Review="It is Best for AC for Summers"},

                                                  new PublicReview{ ReviewId=5, Review="It is excellent"},

 

                                                  new PublicReview{ ReviewId=6, Review="It is best"}

                                                  };

Let us write Inner Join Query using LINQ syntax.

var query = from items in totalitems join review in PublicReviewforItems on items.ItemNumber equals review.ReviewId select new { ItemsName = items.ItemName, Reviews = review.Review };

Here we are using anonymous method (‘select new’) to take customize names of columns.

Loop through all items and show results

  foreach (var item in query)

            {

                Console.WriteLine("{0}-'{1}'", item.ItemsName, item.Reviews);

            }

            Console.ReadLine();

Complete Source Code

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace JOINS

{

    class Program

    {

        static void Main(string[] args)

        {

            Items[] totalitems ={

new Items{ ItemNumber=1, ItemName="Computers"},

new Items{ ItemNumber=2, ItemName="Electronics"},

new Items{ ItemNumber=3, ItemName="TV"},

new Items{ ItemNumber=2, ItemName="AC"},

};

            PublicReview[] PublicReviewforItems = {

new PublicReview{ ReviewId=1, Review="It is good"},

new PublicReview{ ReviewId=2, Review="It is Electronic Items and working fine"},

new PublicReview{ ReviewId=3, Review="It is best TV"},

new PublicReview{ ReviewId=4, Review="It is Best for AC for Summers"},

new PublicReview{ ReviewId=5, Review="It is excellent"},

 

new PublicReview{ ReviewId=6, Review="It is best"}

};

            var query = from items in totalitems join review in PublicReviewforItems on items.ItemNumber equals review.ReviewId select new { ItemsName = items.ItemName, Reviews = review.Review };

            foreach (var item in query)

            {

                Console.WriteLine("{0}-'{1}'", item.ItemsName, item.Reviews);

            }

            Console.ReadLine();

 

        }

    }

    public class Items

    {

        public int ItemNumber;

        public string ItemName;

    }

    public class PublicReview

    {

        public int ReviewId;

        public string Review;

    }

}

 Output:

outputLINQ

 Download Source Code