PRB: Using a Self-Join to Produce a Cartesian Product

ID Number: Q45493

1.00 1.10 1.11 4.20

OS/2

Summary:

SYMPTOMS

In attempting to produce the Cartesian product of a table with

itself, a self-join without a WHERE clause produces only the table

itself.

CAUSE

A self-join without a WHERE clause does not produce a Cartesian

product unless the two instances of the table are given aliases and

the select list includes columns from both aliases. The following

does not produce a Cartesian product:

select * from t1,t1

RESOLUTION

The following does produce a Cartesian product:

select x.c1,y.c1 from t1 x, t2 y

This is the intended operation of SQL Server.

Additional reference words: Transact-SQL