Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

sql bergabung sebagai diagram venn

Saya setuju dengan Cade tentang batasan diagram Venn di sini. Representasi visual yang lebih tepat mungkin seperti ini.

Tabel

PILIH A.Colour, B.Colour FROM A CROSS JOIN B SQL Fiddle

Gabungan silang (atau produk kartesius) menghasilkan hasil dengan setiap kombinasi baris dari dua tabel. Setiap tabel memiliki 4 baris sehingga menghasilkan 16 baris dalam hasilnya.

PILIH A.Warna, B.Warna DARI A INNER GABUNG B PADA A.Warna =B.Warna Fiddle SQL

Inner join secara logis mengembalikan semua baris dari cross join yang cocok dengan kondisi join. Dalam hal ini lima lakukan.

PILIH A.Warna, B.Warna DARI A INNER JOIN B PADA A.Warna TIDAK DI ('Hijau','Biru') Fiddle SQL

Kondisi inner join tidak harus merupakan kondisi kesetaraan dan tidak perlu mereferensikan kolom dari kedua (atau bahkan salah satu) tabel. Mengevaluasi A.Colour NOT IN ('Green','Blue') pada setiap baris salib bergabung kembali.

Kondisi gabungan dalam 1=1 akan dievaluasi menjadi true untuk setiap baris dalam gabungan silang sehingga keduanya setara (SQL Fiddle ).

PILIH A.Warna, B.Warna DARI KIRI LUAR GABUNG B PADA A.Warna =B.Warna Fiddle SQL

Gabungan Luar dievaluasi secara logis dengan cara yang sama seperti Gabungan dalam kecuali bahwa jika baris dari tabel kiri (untuk gabungan kiri) tidak bergabung dengan baris apa pun dari tabel kanan sama sekali, itu dipertahankan dalam hasil dengan NULL nilai untuk kolom sebelah kanan.

PILIH A.Warna, B.Warna DARI KIRI LUAR GABUNG B PADA A.Warna =B.Warna MANA B.Warna NULL SQL Fiddle

Ini hanya membatasi hasil sebelumnya untuk hanya mengembalikan baris di mana B.Colour IS NULL . Dalam kasus khusus ini, ini akan menjadi baris yang dipertahankan karena tidak memiliki kecocokan di tabel sebelah kanan dan kueri mengembalikan satu baris merah yang tidak cocok dalam tabel B . Ini dikenal sebagai anti semi join.

Penting untuk memilih kolom untuk IS NULL pengujian yang tidak dapat dibatalkan atau yang kondisi gabungannya memastikan bahwa NULL nilai akan dikecualikan agar pola ini berfungsi dengan benar dan hindari hanya mengembalikan baris yang kebetulan memiliki NULL nilai untuk kolom itu selain baris yang tidak cocok.

PILIH A.Warna, B.Warna DARI LUAR YANG TEPAT GABUNG B PADA A.Warna =B.Warna Fiddle SQL

Gabungan luar kanan bertindak serupa dengan Gabungan luar kiri kecuali mereka mempertahankan baris yang tidak cocok dari tabel kanan dan null memperpanjang kolom sebelah kiri.

PILIH A.Colour, B.Colour DARI A FULL OUTER JOIN B PADA A.Colour =B.Colour Fiddle SQL

Gabungan luar penuh menggabungkan perilaku gabungan kiri dan kanan dan mempertahankan baris yang tidak cocok dari tabel kiri dan kanan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat kueri bergabung menggunakan Sequelize di Node.js

  2. MySQL SELECT saja bukan nilai nol

  3. Bagaimana cara mengisi tabel dengan rentang tanggal?

  4. Kunci asing MySQL InnoDB antara database yang berbeda

  5. Kelebihan MySQLi dibandingkan MySQL