所以我想做的是:-
SELECT * FROM TableA JOIN TableB ON TableA.OriginPhoneNumber=TableB.Id OR TableA.DestinationPhoneNumber=TableB.Id
相当奇怪的查询,我知道!但是我正在尝试在EntityFramework / Linq中复制此代码- 查看所有示例,当联接使用AND(使用匿名类型)但对OR联接存在相同的结果时,我可以看到一种非常简单的方法?
只需使用where子句进行交叉连接
var results = from a in db.TableA from b in db.TableB where a.OriginPhonenumber == b.Id || a.DestinationPhoneNumber == b.Id select new { A = a, B = b };
令人怀疑的是,连接条件或连接条件是否会比此条件更有效,但是可能会导致相同的执行计划。除了性能,它还会产生相同的结果。