PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Gabungkan dua tabel menjadi tabel baru sehingga memilih baris dari tabel lainnya diabaikan

UNION hanya tidak melakukan apa yang Anda gambarkan. Kueri ini harus:

CREATE TABLE AS 
SELECT date, location_code, product_code, quantity
FROM   transactions_kitchen k

UNION  ALL
SELECT h.date, h.location_code, h.product_code, h.quantity
FROM   transactions_admin h
LEFT   JOIN transactions_kitchen k USING (location_code, date)
WHERE  k.location_code IS NULL;

LEFT JOIN / IS NULL untuk mengecualikan baris dari tabel kedua untuk lokasi dan tanggal yang sama. Lihat:

  • Pilih baris yang tidak ada di tabel lain

Gunakan CREATE TABLE AS alih-alih SELECT INTO . Panduan:

CREATE TABLE AS secara fungsional mirip dengan SELECT INTO . CREATE TABLE AS adalah sintaks yang disarankan, karena bentuk SELECT INTO ini tidak tersedia di ECPG atau PL/pgSQL, karena mereka menafsirkan INTO klausa secara berbeda. Selanjutnya, CREATE TABLE AS menawarkan superset fungsionalitas yang disediakan oleh SELECT INTO .

Atau, jika tabel target sudah ada:

INSERT INTO transactions_combined (<list names of target column here!>)
SELECT ...

Selain:Saya tidak akan menggunakan date sebagai nama kolom. Ini adalah kata yang dicadangkan di setiap standar SQL dan nama fungsi dan tipe data di Postgres.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails Console menemukan pengguna berdasarkan array id

  2. Bagaimana Atanh() Bekerja di PostgreSQL

  3. Tabel dan indeks vs. HDD dan SSD

  4. Bagaimana cara membuat ekstensi postgres di dalam wadah?

  5. Kiat untuk Menyimpan Cadangan PostgreSQL di Amazon AWS