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

Jenis JOIN apa yang digunakan

Jelas, Anda memiliki nilai duplikat untuk kedua kolom yang bergabung. Alih-alih produk Cartesian, [INNER] JOIN akan menghasilkan untuk ini, Anda ingin setiap baris digunakan hanya sekali . Anda dapat mencapai ini dengan menambahkan nomor baris (rn ) per duplikat dan gabung di rn tambahan.

Setiap tabel dapat memiliki lebih banyak atau lebih sedikit penipuan untuk nilai yang sama daripada yang lain kecuali Anda memiliki batasan tambahan (seperti batasan FK) - tetapi tidak ada pertanyaan Anda. Untuk menjaga semua baris satu akan menggunakan FULL [OUTER] JOIN . Tetapi Anda ingin menyimpan 10.000 catatan dalam hasil, yang merupakan kardinalitas table2 . Jadi harus berupa LEFT [OUTER] JOIN pada table1 (dengan 40 baris) - dan kecualikan kemungkinan baris yang berlebihan dari table1 .

SELECT t1."LocationArea", t2."Location"
FROM  (
   SELECT "Location"
        , row_number() OVER (PARTITION BY "Location") AS rn
   FROM   table2
   ) t2
LEFT JOIN (
   SELECT "LocationArea"
        , row_number() OVER (PARTITION BY "LocationArea") AS rn
   FROM   table1
   ) t1 ON t1."LocationArea" = t2."Location"
       AND t1.rn = t2.rn;

Bekerja untuk Postgres atau SQL Server. MySQL tidak mendukung fungsi jendela, Anda memerlukan pengganti:

  • SQL SELECT entri terakhir tanpa batasan

Untuk lebih jelasnya:LEFT JOIN hanyalah singkatan dari LEFT OUTER JOIN , jadi Anda sudah menggunakan gabungan luar. Pernyataan Anda adalah kesalahpahaman :

Saya menggunakan laporan ZOHO yang tidak mendukung outer join.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghentikan/membunuh kueri di postgresql?

  2. Mengapa kita membutuhkan perantara pesan seperti RabbitMQ melalui database seperti PostgreSQL?

  3. Rencana Toko Kolom

  4. Konferensi Musim Semi FLOSS UK

  5. PostgreSQL dengan parameter Order By / Limit dalam fungsi tabel