Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez dans une table où pas dans une autre

En développant l'anti-jointure de Sjoerd, vous pouvez également utiliser le facile à comprendre SELECT WHERE X NOT IN (SELECT) motif.

SELECT pm.id FROM r2r.partmaster pm
WHERE pm.id NOT IN (SELECT pd.part_num FROM wpsapi4.product_details pd)

Notez que vous n'avez besoin d'utiliser que ` backticks sur les mots réservés, les noms avec des espaces et autres, pas avec les noms de colonne normaux.

Sur MySQL 5+, ce type de requête s'exécute assez rapidement.
Sur MySQL 3/4, c'est lent.

Assurez-vous d'avoir des index sur les champs en question
Vous devez avoir un index sur pm.id , pd.part_num .