Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw brakujące rekordy z jednej tabeli do drugiej za pomocą mysql

Możliwe jest również użycie LEFT OUTER JOIN za to. Pozwoli to uniknąć narzutu na podzapytanie (kiedy system może wykonać podzapytanie raz dla każdego rekord zapytania zewnętrznego) jak w odpowiedzi Johna Woo i uniknie niepotrzebnej pracy nad nadpisywaniem już istniejących 800 rekordów, jak w przypadku użytkownika 2340435:

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

To najpierw wybierze wszystkie wiersze z A i B tabele zawierające wszystkie kolumny z obu tabel, ale dla wierszy, które istnieją w A i nie istnieją w B wszystkie kolumny dla B tabela będzie NULL .Następnie filtruje tylko te ostatnie wiersze (WHERE b.id IS NULL ), a na końcu wstawia wszystkie te wiersze do B tabela.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konteneryzacja Apache, MySQL i PHP za pomocą Docker

  2. Błąd MySql występuje w nocy — ostatni pakiet wysłany do serwera był 0 ms temu

  3. Jak rozwiązać InnoDB:Nie można zablokować błędu mysql ./ibdata1?

  4. Jak używać MySQL przez XAMPP?

  5. Wywołanie niezdefiniowanej funkcji mysql_query()