added LEFT, RIGHT, OUTER keywords