0

Username を含むテーブルと、FirstName を含むテーブルがあるとします。1 人のユーザーが複数の FirstNames を持つことができます。

ユーザー名とすべての名前をコンマで区切って含むレコードを取得するにはどうすればよいですか?

すなわち

Users
id | Username
1 | Test

Names
UserId | FirstName
1 | Mike
1 | John

含む記録を受け取りたい

テスト、「マイク、ジョン」

どうやってやるの?

編集: Users テーブルに、取得したい列がさらにある場合はどうなりますか?

すなわち

id | Username | Status
1  | Test     | Active

入手方法はTest, Active, "Mike, John"

4

1 に答える 1

3

あなたが使用することができGroupByますString.Join

var userGroups = from u in users
     join n in names
     on u.ID equals n.UserID
     group new{n, u} by n.UserID into UserGrp
     select new
     {
         Username = UserGrp.Key,
         Status = UserGrp.First().u.Status,
         Names = string.Join(",", UserGrp.Select(x => x.n.Name))
     };

foreach (var ug in userGroups)
   Console.WriteLine("{0}, {1}, \"{2}\"", ug.Username, ug.Status, ug.Names);
于 2012-09-24T10:47:54.693 に答える