我有两张桌子,一张是另一张的复印件。(我必须删除父中不再存在的记录)。运行此查询可以工作,但需要大约1分钟才能完成。我知道不存在的速度更快,因为我不会为每一行运行子查询,但不会返回任何结果。

SELECT mlscopy.listing_listnum
FROM mlscopy
WHERE mlscopy.listing_listnum
NOT IN (SELECT mls_cvrmls.listing_listnum FROM mls_cvrmls)

我将澄清,这里的问题是随着时间的推移,父项发生了变化,我必须从子项中删除/添加记录。因此,我一直坚持从ListangsListNUM不存在于父级的孩子中删除。
这里是不存在的查询
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 A
NOT EXISTS
(
    SELECT *
    FROM mls_cvrmls B
    WHERE B.listing_listnum = A.listing_listnum
);

关于mysql - 有什么办法可以加快查询速度吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8886133/

10-11 12:43