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

ID: Q45493


The information in this article applies to:
  • Microsoft SQL Server for OS/2, version 4.2
  • Microsoft SQL Server version 4.2


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 


WORKAROUND

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 query words: Transact-SQL Windows NT

Keywords : kbprg SSrvProg SSrvServer SSrvWinNT
Version : 4.2 | 4.2
Platform : OS/2 WINDOWS
Issue type :


Last Reviewed: March 6, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.