【发布时间】:2011-11-27 14:33:00
【问题描述】:
我正在尝试查找在一个表中但不在另一个表中的行,这两个表位于不同的数据库中,并且在我用来匹配的列上也有不同的列名。
我有一个查询,下面的代码,我认为它可能有效,但它太慢了:
SELECT `pm`.`id`
FROM `R2R`.`partmaster` `pm`
WHERE NOT EXISTS (
SELECT *
FROM `wpsapi4`.`product_details` `pd`
WHERE `pm`.`id` = `pd`.`part_num`
)
所以查询试图做如下:
从 R2R.partmaster 数据库中选择不在 wpsapi4.product_details 数据库中的所有 id。我匹配的列是 partmaster.id & product_details.part_num
【问题讨论】:
-
对我来说存在/不存在是最好的方式,因为表达清楚地想要你想要得到。但似乎是最慢的方式(在 MySQL 上)。检查这个:explainextended.com/2009/09/18/…