gpt4 book ai didi

sql - 寻找丢失的 key

转载 作者:行者123 更新时间:2023-12-04 21:22:57 24 4
gpt4 key购买 nike

我可以在 Ms Access 2007 上加快这个声明吗?

SELECT *
FROM (SELECT DISTINCT p.zipcode, p.place FROM p) AS tmp
WHERE NOT EXISTS
(SELECT * FROM zipcodes WHERE
(tmp.zipcode=zipcodes.zipcode) AND (tmp.place=zipcodes.place));

我想在 p 表中找到 zipcodes 表中没有的 (zipcode, place) 组合。

p 表相当大,但缩减为 tmp 时大约有 40.000 个条目。 zipcodes 表有大约 15.000 个条目。 zipcodes 表在(zipcode,place)上建立索引。

得到我的结果需要一个多小时。我可以更快地得到它吗?我可以在 Access 2007 中查看执行计划吗? (我不是 Access 的普通用户,也不是 SQL 专家。)

亲切的问候,卡斯腾。

最佳答案

您可以 LEFT JOIN 两个表并从结果集中排除匹配的行。使用按邮政编码和地点索引的邮政编码表,这可能比您现在拥有的要快得多。希望速度足够快,您无需求助于创建中间临时表。

SELECT DISTINCT p.zipcode, p.place
FROM p LEFT JOIN zipcodes AS z ON (p.place = z.place) AND (p.zipcode = z.zipcode)
WHERE (((z.zipcode) Is Null));

编辑:您要求查看执行计划。从 TechRepublic 上的这篇文章开始:Use Microsoft Jet's ShowPlan to write more efficient queries您还可以通过在网络上搜索“Jet ShowPlan”来找到更多信息。

关于sql - 寻找丢失的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com