Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Алтернатива за декартово и кръстосано съединение

На ниво на стриктна дефиниция това не е възможно. Защо? Тъй като дефиницията на декартов продукт е точно това, което описвате (терминът "декартово съединение" не се използва често, но е синоним на "декартов продукт"). Следователно всеки метод, който използвате, прилага тази функционалност. Обикновено тази функционалност се реализира чрез CROSS JOIN (и неохотно признавам, че понякога използвам , ).

Може да кажете „добавете 1 към число, без да правите + 1 ". Някой друг идва и казва "използвайте + 2 - 1 ". Е, това е добавяне на една, но само с две операции вместо една.

Ако искате декартов продукт, но не искате да използвате CROSS JOIN оператор, най-типичният метод използва 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. Linux - PHP 7.0 и MSSQL (Microsoft SQL)

  2. Пуснете външния ключ, без да знаете името на ограничението?

  3. Актуализирайте записите в таблицата от CTE

  4. Промяна на таблици, които се репликират в SQL Server 2008 R2

  5. Трябва да импортирам данни от Excel към SQL Server с помощта на VBA