반응형
Left Outer Join(왼쪽 외부조인)는 기준이 되는 데이터를 모두 반환합니다.
샘플코드는 UserGroup테이블이 기준이 되는 데이터이므로 모든 그룹명이 조회되지만
Seventeen의 경우에는 User테이블에 해당 그룹의 멤버명이 존재하지 않으므로 멤버명은 반환이 되지않습니다.
/// <summary>
/// Group정보 클래스
/// </summary>
class UserGroup
{
public string GroupName { get; set; }
public string UserGroupID { get; set; }
}
/// <summary>
/// User정보 클래스
/// </summary>
class User
{
public string UserName { get; set; }
public string UserGroupID { get; set; }
}
static void Main(string[] args)
{
//Group클래스 샘플데이터
List<UserGroup> UserGroups = new List<UserGroup>()
{
new UserGroup{GroupName="Bts", UserGroupID="1"},
new UserGroup{GroupName="Shinee", UserGroupID="2"},
new UserGroup{GroupName="Tvxq", UserGroupID="3"},
new UserGroup{GroupName="Twice", UserGroupID="4"},
new UserGroup{GroupName="Seventeen", UserGroupID="5"},
};
// User클래스 샘플데이터
List<User> Users = new List<User>()
{
new User(){UserName="V", UserGroupID="1"},
new User(){UserName="SUGA", UserGroupID="1"},
new User(){UserName="JIN", UserGroupID="1"},
new User(){UserName="KEY", UserGroupID="2"},
new User(){UserName="MINHO", UserGroupID="2"},
new User(){UserName="CHANGMIN", UserGroupID="3"},
new User(){UserName="MINA", UserGroupID="4"},
new User(){UserName="SANA", UserGroupID="4"},
new User(){UserName="MOMO", UserGroupID="4"},
};
//Left Outer Join 쿼리
var innerJoinQuery =
from userGroup in UserGroups
join user in Users on userGroup.UserGroupID equals user.UserGroupID into leftJoin
from user in leftJoin.DefaultIfEmpty()
select new { UserGroupID = userGroup.UserGroupID, GroupName = userGroup.GroupName, UserName = (user != null ? user.UserName : string.Empty) };
Console.WriteLine("Left Outer Join Query");
//UserGroup테이블에 존재하는 모든 데이터 반환
foreach (var item in innerJoinQuery)
{
Console.WriteLine("({0}-{2}){1}", item.GroupName, item.UserName, item.UserGroupID);
}
Console.ReadKey();
}
결과값
반응형
'C#' 카테고리의 다른 글
LINQ Zip 사용법 (0) | 2021.07.25 |
---|---|
LINQ Concat 사용법 (0) | 2021.07.24 |
LINQ Inner Join 사용법 (2) | 2021.07.22 |
LINQ Where메서드의 조건중에서 null값이 있을경우의 처리방법 (0) | 2021.07.21 |
LINQ Distinct, Skip, Take메서드 사용법 (0) | 2021.07.21 |
댓글