Använda korskopplingar

Slutförd

En korskoppling är helt enkelt en kartesisk produkt av de två tabellerna. Med ANSI SQL-89-syntax kan du skapa en korskoppling genom att bara lämna filtret som ansluter de två tabellerna. Med syntaxen ANSI-92 är det lite svårare. vilket är bra, för i allmänhet är en korskoppling inte något som du vanligtvis vill ha. Med SYNTAXEN ANSI-92 är det högst osannolikt att du råkar ut för en korskoppling av misstag.

Om du uttryckligen vill skapa en kartesisk produkt använder du CROSS JOIN-operatorn.

Den här åtgärden skapar en resultatuppsättning med alla möjliga kombinationer av indatarader:

SELECT <select_list>
FROM table1 AS t1
CROSS JOIN table2 AS t2;

Även om det här resultatet vanligtvis inte är önskade utdata finns det några praktiska program för att skriva en explicit CROSS JOIN:

  • Skapa en tabell med tal med en rad för varje möjligt värde i ett intervall.
  • Generera stora mängder data för testning. När du är korssluten till sig själv kan en tabell med så få som 100 rader enkelt generera 10 000 utdatarader med lite arbete från dig.

CROSS JOIN-syntax

När du skriver frågor med CROSS JOIN bör du överväga följande riktlinjer:

  • Det finns ingen matchning av rader som utförs, så ingen ON-sats används. (Det är ett fel att använda en ON-sats med CROSS JOIN.)
  • Om du vill använda ANSI SQL-92-syntax separerar du indatatabellnamnen med CROSS JOIN-operatorn.

Följande fråga är ett exempel på hur du använder CROSS JOIN för att skapa alla kombinationer av anställda och produkter:

SELECT emp.FirstName, prd.Name
FROM HR.Employee AS emp
CROSS JOIN Production.Product AS prd;