I don't believe that is a cartesian product - since you have the join condition "where n.id = nl.id". If you removed that, then you would have a cartesian, which would result in 5*11=55 rows returned. Right, or am I missing something? -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Jared Still The following SQL returns a cartesian product as you would expect: 16:26:41 SQL>l 1 select n.id, nl.name 2 from names n, name_lookup nl 3* where n.id = nl.id 16:26:41 SQL>/ ID NAME ---------- ---------- 1 1 A 1 1 B 2 2 A 3 3 A 3 3 B 3 3 C 4 4 A 4 4 B 4 4 C 4 4 D 5 5 A 11 rows selected. Privileged/Confidential Information may be contained in this message or attachments hereto. Please advise immediately if you or your employer do not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that do not relate to the official business of this company shall be understood as neither given nor endorsed by it. -- //www.freelists.org/webpage/oracle-l