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 trained_in ( physician VARCHAR, treatment VARCHAR )
TABLE: CREATE TABLE procedures ( name VARCHAR, cost INTEGER )
TABLE: CREATE TABLE physician ( employeeid VARCHAR, name VARCHAR )

### Question ###
Find the names of all procedures such that the cost is less than 5000 and physician John Wen was trained in.

### Accurate SQL ###

SELECT name FROM procedures WHERE cost < 5000 INTERSECT SELECT T3.name FROM physician AS T1 JOIN trained_in AS T2 ON T1.employeeid = T2.physician JOIN procedures AS T3 ON T3.code = T2.treatment WHERE T1.name = "John Wen"