0

ユーザー:

userid    name     email
  1       venkat   v@g.com
  2       venu     ve@g.com
  3       raghu    r@g.com

パートナー:

    id   userid   partnerid  status
    1     1        2           1
    2     1        3           1

位置:

    id   userid    lat    lon
    1     1        12.00  13.00
    2     2        14.00  12.00
    3     3        14.00  14.23

クエリ:

var result = from partner in Partners
                join user in Users on partner.UserId equals user.PartnerId
                join location in Locations on patner.UserId equals location.PartnerId
                where partner.UserId == 1
                select new { PartnerId = partner.PartnerId, PartnerName = user.Name, Lat = location.Lat, Lon = location.Lon };

userid=1パラメータとして渡すことにより、この結果が得られます。

partnerid  patnername      lat            lon
  2         venkat         14.00         12.00
  3         venkat         14.00         14.23

上記の結果を観察すると、ここでのパートナー名は間違っています- partnerid = 2「venkat」を表示していましたpatnamevenu

の場合partnerid = 3、partnernameはraghu表示されていましたvenkat

正しいパートナー名を表示するにはどうすればよいですか?

4

1 に答える 1

1

ここでのこの参加は間違っていると思います。

var result = from partner in Partners
             join user in Users on user.UserId equals partner.PartnerId

あなたは彼のユーザーを彼のuserIdを使用してパートナーに参加させていますPartnerID

PartnerIDどちらの場合も、を使用してユーザーをパートナーに参加させる必要はありませんか?このようなもの:

var result = from partner in Partners
             join user in Users on user.PartnerId equals partner.PartnerId
于 2012-05-02T05:26:56.013 に答える