select a.arno, b.lname, c.lname as shiplname; > from ar a left join address b on a.id_addr = b.id_addr,; > ar a left join address c on a.id_ship=c.id_addr ; > into cursor temp > >whcih doesnt work, so I > >select a.arno, b.lname, c.lname as shiplname; > from ar a left join address b on a.id_addr = b.id_addr, address c ; > where a.id_ship = c.id_addr; > union (select a.arno, b.lname, c.lname as shiplname; > from ar a left join address c on a.id_ship=c.id_addr, ; > address b where a.id_ship = 0 and a.id_addr = b.id_addr); > into cursor tempinstead. I don't like and will keep looking however. There are few times when this "Optional Foreign Key" get in my way so I won't need to do this to often. Thanks for your help, though!