Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Alternatif untuk Cartesian dan Cross Join

Dengan tingkat definisi yang ketat, itu tidak mungkin. Mengapa? Karena definisi dari produk Cartesian persis seperti yang Anda gambarkan (istilah "Gabungan Cartesian" tidak sering digunakan tetapi merupakan sinonim untuk "produk Cartesian"). Oleh karena itu, metode apa pun yang Anda gunakan menerapkan fungsi ini. Biasanya fungsi ini diimplementasikan menggunakan CROSS JOIN (dan dengan enggan saya akui, terkadang menggunakan , ).

Anda mungkin mengatakan "tambahkan 1 ke nomor tanpa melakukan + 1 ". Seseorang datang dan berkata "gunakan + 2 - 1 ". Yah, itu adalah menambahkan satu, tetapi hanya menggunakan dua operasi daripada satu.

Jika Anda menginginkan produk Cartesian tetapi Anda tidak ingin menggunakan CROSS JOIN operator, metode yang paling umum menggunakan ON 1=1 :

select t1.*, t2.*
from t1 join
     t2
     on 1 = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON di SQL Server

  2. Bagaimana saya bisa mencegah pertumbuhan log di SQL Server saat memasukkan jutaan catatan

  3. Bagaimana saya bisa mengonversi kutu ke format tanggal?

  4. cara menangani pemetaan ulang hanya dapat dilakukan untuk pengguna yang dipetakan ke login Windows atau SQL

  5. Objek Nullable harus memiliki nilai #2