1

This SQL query works perfectly:

Select events.Name, results.Description, Events.Id, results.EventId, results.UserId
FROM Events
LEFT JOIN Results ON events.Id=Results.EventId
where results.UserId!='86' OR results.UserId IS NULL;

I'm trying the same thing for my API but no results return with this code:

public IActionResult AllEventsMatches()
    {
        var events = from Event in _dbContext.Events
                     join Result in _dbContext.Results on Event.Id equals Result.EventId
                     where Result.UserId != 86 || Result.UserId == null
                     select new
                     {
                         Name = Event.Name,
                         Description = Event.Description,
                         Id = Event.Id,
                         EventId = Result.EventId,
                         UserId = Result.UserId

                     };
        return Ok(events);
    }
esty12
  • 37
  • 4

1 Answers1

0

you have to use a left join too

 var events = 
 ( from Event in _dbContext.Events
    join Result in _dbContext.Results on Event.Id equals Result.EventId into ResultJ
    from Recult in ResultJ.DefaultIfEmpty()    
 where  Result.UserId == null || Result.UserId != 86 
                     select new
                     {
                         Name = Event.Name,
                         Description = Event.Description,
                         Id = Event.Id,
                         EventId = Result.EventId,
                         UserId = Result.UserId

                     }).ToList();
Serge
  • 40,935
  • 4
  • 18
  • 45