sql >> Databáze >  >> RDS >> Sqlserver

Alternativa pro karteziánské a křížové spojení

Podle přísné úrovně definice to není možné. Proč? Protože definice karteziánského součinu je přesně to, co popisujete (výraz "kartézské spojení" se často nepoužívá, ale je synonymem pro "kartézský součin"). Každá metoda, kterou použijete, tedy implementuje tuto funkci. Normálně se tato funkce implementuje pomocí CROSS JOIN (a neochotně přiznávám, že někdy používám , ).

Můžete říci „přidej 1 k číslu bez použití + 1 ". Přijde někdo jiný a řekne "použij + 2 - 1." ". To je přidání jedné, ale pouze použití dvou operací místo jedné."

Pokud chcete kartézský produkt, ale nechcete použít CROSS JOIN operátor, nejtypičtější metoda používá ON 1=1 :

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


  1. Výběr všech polí kromě pouze jednoho pole v mysql

  2. Načtěte hierarchii rodič-dítě ze samoodkazující tabulky mysql

  3. ORACLE Odesílání DATE do TIMESTAMP S ČASOVÝM PÁSMOM S OFFSETEM

  4. Zkontrolujte jednu hodnotu v celé tabulce