Based on the link provided by Paul Sasik, and his advice that you're after a LEFT OUTER JOIN
, this query should meet your requirements;
var query = from job in jobs
join app in applications on job.ID equals app.jID into grouped
from subApp in grouped.DefaultIfEmpty()
select new { Job = job, Applied = (subApp != null) };
EDIT:
To filter by user, update the query as follows;
var query = from job in jobs
join app in
(
from userApp in applications where userApp.uID == uID select userApp
) on job.ID equals app.jID into grouped
from subApp in grouped.DefaultIfEmpty()
select new { Job = job, Applied = (subApp != null) };
I personally would have reverted to just using the .Where() method directly at this point, but just thought I'd keep everything consistent and continue using the query syntax.