In this blog post you will learn inner join using lambda queries. There will be two samples, in first sample you will see how you can join two tables and in second sample you will see how you can extend even further to join three tables and so on. I will sample in-memory data, but the same implementation will work with IQueryable (lazy query) too. Here's the code snippet:- namespace ConsoleApp1 { class Program { static void Main() { var table1 = new List<Table1>(); table1.Add( new Table1 { Id = 1, Name = "Name 1" , Address = "Address 1" }); table1.Add( new Table1 { Id = 2, Name = "Name 2" , Address = "Address 2" }); table1.Add( new Table1 { Id = 3, Name = "Name 3" , Address = "Address 3" }); table1.Add( new Table1 { Id = 4, Name = "Name 4" , Address = "Address 4" });