使用 SQL JOIN 或类似语句作为报表的记录源进行访问
Access using an SQL JOIN or similar statement as a record source for a report
SELECT *
FROM QryMain
WHERE [Plant Number] IN (SELECT [Plant Number] FROM [QryProceduresDone]);
大家好
目前正在使用以上作为报告记录来源。
基本上我希望报告只显示来自 QryMain 的记录,这些记录在 QryProceduresDone 中也有相应的记录。两个查询都有 [Plant Number]
字段。
上面的语句工作正常,但我相信如果必须处理很多记录,它可能会变慢。
我相信使用 JOIN
语句效率更高,并且尝试过各种尝试使用 join 但没有成功。
任何人都可以帮助建议一种应用连接或任何其他比我正在使用的更有效的替代语句的方法吗?
使用 Access 2010。
提前致谢。
具有连接的等效代码为:
SELECT m.*
FROM QryMain AS m INNER JOIN QryProceduresDone AS pd
ON pd.[Plant Number] = m.[Plant Number];
但如果表的关系不是 1:1,则连接可能 return 重复,而且我不确定这是否会对性能产生重大影响。
可能更好的是EXISTS
:
SELECT m.*
FROM QryMain AS m
WHERE EXISTS (SELECT 1 FROM QryProceduresDone AS pd WHERE pd.[Plant Number] = m.[Plant Number]);
SELECT *
FROM QryMain
WHERE [Plant Number] IN (SELECT [Plant Number] FROM [QryProceduresDone]);
大家好
目前正在使用以上作为报告记录来源。
基本上我希望报告只显示来自 QryMain 的记录,这些记录在 QryProceduresDone 中也有相应的记录。两个查询都有 [Plant Number]
字段。
上面的语句工作正常,但我相信如果必须处理很多记录,它可能会变慢。
我相信使用 JOIN
语句效率更高,并且尝试过各种尝试使用 join 但没有成功。
任何人都可以帮助建议一种应用连接或任何其他比我正在使用的更有效的替代语句的方法吗?
使用 Access 2010。
提前致谢。
具有连接的等效代码为:
SELECT m.*
FROM QryMain AS m INNER JOIN QryProceduresDone AS pd
ON pd.[Plant Number] = m.[Plant Number];
但如果表的关系不是 1:1,则连接可能 return 重复,而且我不确定这是否会对性能产生重大影响。
可能更好的是EXISTS
:
SELECT m.*
FROM QryMain AS m
WHERE EXISTS (SELECT 1 FROM QryProceduresDone AS pd WHERE pd.[Plant Number] = m.[Plant Number]);