>>SELECT MyParent.* ; >>FROM MyParent, MyChild1, MyChild2, MyChild3 ; >>INNER JOIN MyChild1 ; >>INNER JOIN MyChild2 ; >>INNER JOIN MyChild3 ; >>ON MyParent.MyKey = MyChild3.MyKey ; >>ON MyParent.MyKey = MyChild2.MyKey ; >>ON MyParent.MyKey = MyChild1.MyKey ; >>WHERE MyParent.MyField1 = "MyVal" ; >>AND MyChild1.MyField = "MyVal" ; >>AND MyChild2.MyField = "MyVal" ; >>AND MyChild3.MyField = "MyVal">>However SYS(3054,11) shows cartesians are being processed after the first join. Is there any way to join these tables in one SQL statement or do I have to buiild them (or is it more efficient) one table at a time to a preceeding result set?
SELECT MyParent.* ; FROM MyParent ; INNER JOIN MyChild1 ; ON MyParent.MyKey = MyChild1.MyKey ; AND MyChild1.MyField = "MyVal" ; INNER JOIN MyChild2 ; ON MyParent.MyKey = MyChild2.MyKey ; AND MyChild2.MyField = "MyVal" ; INNER JOIN MyChild3 ; ON MyParent.MyKey = MyChild3.MyKey ; AND MyChild3.MyField = "MyVal" WHERE MyParent.MyField1 = "MyVal" ; into cursror curTestHTH