sql >> Databáze >  >> RDS >> Mysql

Vložte chybějící záznamy z jedné tabulky do druhé pomocí mysql

Je také možné použít LEFT OUTER JOIN pro to. Vyhnete se tak režii poddotazu (když systém může provést poddotaz jednou pro každý záznam vnějšího dotazu) jako v odpovědi Johna Woo a vyhne se zbytečné práci s přepisováním již existujících 800 záznamů, jako je tomu v případě uživatele 2340435:

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

Tím se nejprve vyberou všechny řádky z A a B tabulky včetně všech sloupců z obou tabulek, ale pro řádky, které existují v A a neexistují v B všechny sloupce pro B tabulka bude NULL .Pak odfiltruje pouze tyto poslední řádky (WHERE b.id IS NULL ) a nakonec vloží všechny tyto řádky do B tabulka.



  1. Problém s obnovením databáze Heroku

  2. Nelze importovat mysql-python v crontab Mac OS

  3. Sloučit a seřadit dvě výmluvné sbírky?

  4. Cloud Disaster Recovery pro MariaDB a MySQL