Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Alternatywa dla łączenia kartezjańskiego i krzyżowego

Na poziomie ścisłej definicji nie jest to możliwe. Czemu? Ponieważ definicja produktu kartezjańskiego jest dokładnie tym, co opisujesz (termin „złączenie kartezjańskie” nie jest często używany, ale jest synonimem „produktu kartezjańskiego”). Dlatego każda używana metoda jest implementacją tej funkcjonalności. Zwykle ta funkcjonalność jest implementowana za pomocą CROSS JOIN (i niechętnie przyznaję, czasami używając , ).

Możesz powiedzieć „dodaj 1 do numeru bez robienia + 1 ”. Podchodzi ktoś inny i mówi „użyj + 2 - 1 ". Cóż, to jest dodanie jednej, ale tylko za pomocą dwóch operacji zamiast jednej.

Jeśli potrzebujesz produktu kartezjańskiego, ale nie chcesz używać CROSS JOIN operatora, najbardziej typowa metoda używa 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. Odwołaj się do aliasu w innym miejscu na liście WYBIERZ

  2. Sprawdź składnię wszystkich procedur składowanych?

  3. Jak dodać kolumnę numeru sekwencyjnego do danych wynikowych?

  4. Iteruj przez wiersze w SQL Server 2008

  5. Uporządkuj malejąco według daty - miesiąc, dzień i rok