PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Konwertowanie relacji wiele-do-wielu na jeden-do-wielu w PostgreSQL

UPDATE bar b
SET    foo_id = fb.foo_id
FROM   foo_bar fb
WHERE  fb.bar_id = b.bar_id;

Jeśli powinieneś mieć wiele wierszy dla jednego bar (czego nie powinieneś, zgodnie z twoim opisem) jeden wiersz będzie aktualizowany wiele razy, a wynik jest dowolny.

Ta forma zapytania generalnie działa lepiej niż skorelowane podzapytanie.

Zwróć uwagę, że klucz podstawowy bar powinien mieć nazwę bar_id - Używam tej nazwy w zapytaniu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Statystyki zasięgu kodu

  2. Wstawianie prawidłowego json z kopią do tabeli postgres

  3. Jak wykonać kopię zapasową bazy danych PostgreSQL za pomocą Cron?

  4. Postgres FOR LOOP

  5. czy powinienem aktywować łączenie wyciągów c3p0?