关于join和where解决方案

关于join和where
这两行代码有什么不同
var query = users.Select(x => new { User = x, Orders = orders.Where(y => y.UserID == x.ID) });

var query = from x in users
            join y in orders on x.ID equals y.UserID into j
            select new { User = j.x, Orders = j };
------解决方案--------------------
join是基于hash的,在数据库中翻译成sql的join
where是基于比较的,在数据库中翻译成sql的子查询,性能要低。

------解决方案--------------------
第一句翻译成sql的话其实就是sql里的left join