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

Gabungkan tabel pada kolom kunci asing/primer komposit dalam kueri

Ada NATURAL JOIN :

SELECT *
FROM   subscription
NATURAL JOIN delivery;

Mengutip manual di SELECT :

Ini akan berfungsi untuk penyiapan pengujian Anda, tetapi tidak sepenuhnya melakukan apa yang Anda minta . Sambungan didasarkan pada semua kolom yang berbagi nama yang sama. Kunci asing tidak dipertimbangkan. Kasus di mana NATURAL JOIN adalah ide bagus yang jumlahnya sedikit dan jarang.

Sederhanakan kode / kurangi verbose

Sebagai permulaan, Anda bisa menggunakan alias tabel dan Anda tidak perlu tanda kurung di sekitar kondisi bergabung dengan ON (tidak seperti USING ):

SELECT *
FROM   subscription s
JOIN   delivery     d ON d.magazine_id = s.magazine_id
                     AND d.user_id = s.user_id;

Karena nama kolom dalam kondisi gabungan identik, Anda dapat menyederhanakan lebih lanjut dengan USING :

SELECT *
FROM   subscription s
JOIN   delivery     d USING (magazine_id, user_id);

Tidak ada varian sintaks yang membuat gabungan berdasarkan batasan kunci asing secara otomatis. Anda harus menanyakan katalog sistem dan membangun SQL secara dinamis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi dan Basis Data Multi-Penyewa menggunakan Skema di PostgreSQL

  2. Menganalisis/Membuat profil kueri di PostgreSQL

  3. PHP:Driver PGSQL dan AutoCommit?

  4. Menggunakan PgBouncer Connection Pooler untuk PostgreSQL dengan ClusterControl 1.8.2

  5. Fitur Kompatibilitas Oracle baru di PostgresPlus Advanced Server 9.3Beta