>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 = MyChild3.MyKey ; AND MyChild1.MyField = "MyVal" ; INNER JOIN MyChild2 ; ON MyParent.MyKey = MyChild2.MyKey ; AND MyChild2.MyField = "MyVal" ; INNER JOIN MyChild3 ; ON MyParent.MyKey = MyChild1.MyKey ; AND MyChild3.MyField = "MyVal"WHERE MyParent.MyField1 = "MyVal" ;