使用sql join或类似语句作为报表的记录源进行访问

o75abkj4  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(294)
SELECT * 
FROM QryMain 
WHERE [Plant Number] IN (SELECT [Plant Number] FROM [QryProceduresDone]);

大家好。
当前使用上述作为报表记录源。
基本上,我希望报表只显示来自qrymain的记录,这些记录在qryproceduresdone中也有相应的记录。两个查询都具有 [Plant Number] 现场。
上面的语句工作得很好,但我相信如果要处理许多记录,它可能会慢下来。
我相信使用 JOIN 语句的效率要高得多,并且尝试过使用join的各种尝试,但都没有成功。
有谁能帮忙建议一种方法来应用一个join语句或任何其他比我使用的语句更有效的替代语句吗?
使用access 2010。
提前谢谢。

3xiyfsfu

3xiyfsfu1#

具有连接的等效代码为:

SELECT m.* 
FROM QryMain AS m INNER JOIN QryProceduresDone AS pd
ON pd.[Plant Number] = m.[Plant Number];

但是,如果表之间的关系不是1:1,那么连接可能会返回重复的数据,而且我也不确定这是否会对性能产生显著影响。
更好的是 EXISTS :

SELECT m.* 
FROM QryMain AS m 
WHERE EXISTS (SELECT 1 FROM QryProceduresDone AS pd WHERE pd.[Plant Number] = m.[Plant Number]);

相关问题