sql >> Databasteknik >  >> RDS >> Mysql

Infoga saknade poster från en tabell till en annan med mysql

Det är också möjligt att använda LEFT OUTER JOIN för det. Detta kommer att undvika underfrågans overhead (när systemet kan köra underfrågan en gång för varje post av yttre fråga) som i John Woos svar, och kommer att undvika onödigt arbete genom att skriva över redan befintliga 800 poster som i user2340435:s:

INSERT INTO b
SELECT a.* FROM a
LEFT OUTER JOIN b ON b.id = a.id
WHERE b.id IS NULL;

Detta kommer först att välja alla rader från A och B tabeller inklusive alla kolumner från båda tabellerna, men för rader som finns i A och finns inte i B alla kolumner för B tabellen kommer att vara NULL .Då filtrerar den bara sådana senare rader (WHERE b.id IS NULL ), och till sist infogar den alla dessa rader i B bord.



  1. Infoga flera rader med PDO-förberedda uttalanden

  2. Dynamiskt rullgardinsvärde från databasen

  3. Mätning av faktisk MySQL-frågetid

  4. hämta data från mysql-databasen att använda i javascript