use __toString to build SQL statement, and to{SqlType} methods to specify which sql to build.
resets should resets the sqlType back to 'select'.
add tests on Query using joins.