小编典典

使用OR语法在多个列上使用联接表

sql

所以我想做的是:-

SELECT * FROM TableA
JOIN TableB ON TableA.OriginPhoneNumber=TableB.Id OR TableA.DestinationPhoneNumber=TableB.Id

相当奇怪的查询,我知道!但是我正在尝试在EntityFramework / Linq中复制此代码-
查看所有示例,当联接使用AND(使用匿名类型)但对OR联接存在相同的结果时,我可以看到一种非常简单的方法?


阅读 299

收藏
2021-03-08

共1个答案

小编典典

只需使用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 };

令人怀疑的是,连接条件或连接条件是否会比此条件更有效,但是可能会导致相同的执行计划。除了性能,它还会产生相同的结果。

2021-03-08