Ho due tabelle: account_company e document_invoice. La tabella account_company ha 2 colonne: company_id e company_name. Tabella document_invoice ha le stesse colonne: company_id e company_name. È successo qualcosa ed eliminare tutti i dati dal nome della società di colonne da document_invoice.Come copiare i dati tra le tabelle PostgreSQL
Come posso scrivere una query SQL per copiare i dati dalla tabella della società di account a document_invoice? Ho usato UPDATE e SET ma non so esattamente come.
UPDATE document_invoice
SET company_name = (SELECT company_name FROM account_company)
WHERE document_id.company_name=document_id.account
Leggermente OT, considerano * non portare * il nome della società nel piano di lettura della fattura, a meno che non si pensi che il nome della società potrebbe cambiare e si desidera per acquisire il valore del nome della società dal momento della fattura. (Anche in questo caso potresti prendere in considerazione la gestione temporale del problema, ma potrebbe essere esagerato.) L'archiviazione ridondante dei dati rende più costoso l'aggiornamento e introduce il rischio che possano non essere sincronizzati. Questo è ciò per cui i join sono. Non credere che FUD sia costoso. – kgrittn
Sono d'accordo con kgrittn: se hai già il company_id in document_invoice, non c'è bisogno di tenere una copia di company_name in quella tabella. –