左连接简介
解释见如下注释
select *
from a表
left join b表
on a.aid = b.bid
-- 如上是左连接最简单的写法,a表左连接b表,此时即使aid与bid没有匹配上,a表的所有数据依然可以被查出来
Linq中的左连接,如下,主要看划重点的两行
//获取基站在redis的实时数据
var stationRealTimeList = RedisHelper.GetRedisStationRealTimeData();
//获取基站在数据库的所有数据
var stationList = new DbContext<WirelessStationInfo>().GetList(t => t.DeleteDate == null);
//关联查询基站实时信息
var stationRealTimeInfos = (from stationItem in stationList
join stationRealTimeItem in stationRealTimeList
on stationItem.StationID equals stationRealTimeItem.StationID
into stationRealTimeInfo //划重点划重点
from str in stationRealTimeInfo.DefaultIfEmpty() //划重点划重点
select new
{
stationID = stationItem.StationID, //分站ID
stationName = stationItem.StationName, //分站名称
stationIP = stationItem.WxIP, //分站IP
stationState = str == null ? 1 : str.StationState, //分站状态
//划重点 获取被左连接的表的数据时要进行判断
}).ToList();