Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE college ( cname text, state text, enr number )
TABLE: CREATE TABLE player ( pid number, pname text, ycard text, hs number )
TABLE: CREATE TABLE tryout ( pid number, cname text, ppos text, decision text )

### Question ###
Find the names of states that have some college students playing in the mid position but not in the goalie position.

### Accurate SQL ###

SELECT T1.state FROM college AS T1 JOIN tryout AS T2 ON T1.cname = T2.cname WHERE T2.ppos = 'mid' EXCEPT SELECT T1.state FROM college AS T1 JOIN tryout AS T2 ON T1.cname = T2.cname WHERE T2.ppos = 'goalie'