我有两个表,一个是另一个的副本。 (我必须删除父项中不再存在的记录)。运行此查询有效,但需要大约 1 分钟才能完成。我知道 NOT EXISTS 更快,因为我不会为每一行运行子查询,但不会返回任何结果。
SELECT mlscopy.listing_listnum
FROM mlscopy
WHERE mlscopy.listing_listnum
NOT IN (SELECT mls_cvrmls.listing_listnum FROM mls_cvrmls)
我会澄清一下,这里的问题是父项随时间变化,我必须从子项中删除/添加记录。所以我坚持从父级中不存在 listing_listnum 的子级中删除。
这是不存在的查询
SELECT mlscopy.listing_listnum
FROM mlscopy
WHERE
NOT EXISTS (SELECT mls_cvrmls.listing_listnum FROM mls_cvrmls)
想通了
SELECT mlscopy.listing_listnum
FROM mlscopy
WHERE NOT EXISTS (
SELECT mls_cvrmls.listing_listnum
FROM mls_cvrmls
WHERE mlscopy.listing_listnum = mls_cvrmls.listing_listnum
)
最佳答案
试试这个变体,看看它是否更好:
SELECT mlscopy.listing_listnum
FROM mlscopy
LEFT JOIN mls_cvrmls
ON mlscopy.listing_listnum = mls_cvrmls.listing_listnum
WHERE mls_cvrmls.listing_listnum IS NULL
关于mysql - 有什么办法可以加快这个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886133/