我有以下查询检查表的两列是否为in
另一列
查询有效,我希望您可以优化呼叫,因为它们是相同的。我怀疑是否存在性能损失,因为对同一查询进行了两次调用
SELECT name,lastname FROM TABLA_A
WHERE
name IN (
SELECT name FROM TABLE_B
)
OR
lastname IN (
SELECT lastname FROM TABLE_B
)
另一种方式
SELECT a.name,a.lastname
FROM TABLE_A as a
join TABLE_B as b on a.name=b.name
or a.lastname= b.lastname
尝试加入,是一个有效的选择吗?还有其他方法可以完成这项任务 更高效?非常感谢你
答案 0 :(得分:1)
使用var delSiteFuseId = await dataClient.For<DeliverySiteFuse>()
.Filter(x => x.Name gt 125)
.FindEntryAsync();
时出现性能问题,您可以使用OR
代替:{/ p>
UNION
<强> tutorial 强>
答案 1 :(得分:1)
您可以使用EXISTS,它可以从各个方面比IN更有效:
{
"employees" : [
{
"name" : "XXX",
"id" : "1",
"Salary" : [
{
"Month" : "XXXX",
"Amount" : "XXXX",
},
{
"Month" : "XXXX",
"Amount" : "XXXX",
},
{
"Month" : "XXXX",
"Amount" : "XXXX",
}
]
},
{
"name" : "YYY",
"id" : "2",
"Salary" : [
{
"Month" : "YYYY",
"Amount" : "YYYY",
},
{
"Month" : "YYYY",
"Amount" : "YYYY",
},
{
"Month" : "YYYY",
"Amount" : "YYYY",
}
]
}
],
}
答案 2 :(得分:0)
正如您已经完成的那样
SELECT a.name, a.lastname
FROM TABLE_A as a
INNER JOIN TABLE_B as b on a.name=b.name OR a.lastname= b.lastname