sql >> Databasteknik >  >> RDS >> Mysql

Välj från en tabell där inte i en annan

Genom att expandera på Sjoerds anti-join kan du också använda den lättförståeliga SELECT WHERE X NOT IN (SELECT) mönster.

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

Observera att du bara behöver använda ` backticks på reserverade ord, namn med mellanslag och sådant, inte med vanliga kolumnnamn.

På MySQL 5+ går den här typen av frågor ganska snabbt.
På MySQL 3/4 går det långsamt.

Se till att du har index på fälten i fråga
Du måste ha ett index på pm.id , pd.part_num .



  1. Synkronisera databasstruktur mellan applikationer

  2. Hur LEAST() fungerar i MariaDB

  3. Ersätter NULL med 0 i en SQL-serverfråga

  4. #1055 - Uttrycket av SELECT-listan finns inte i GROUP BY-satsen och innehåller en icke-aggregerad kolumn som är inkompatibel med sql_mode=only_full_group_by