hi and hope you have a good time , i was making an app in python and SQL and i'm getting a syntax error in SQL , can you help?
self.mycursor.execute(f'''CREATE VIEW [usable products] AS
SELECT * FROM products
WHERE {str(self.counts.value())}> (SELECT count FROM products)
''')
and the error is :
ight syntax to use near '[usable products] AS
SELECT * FROM products
WHER' at line 1
version for the right syntax to use near '[usable products] AS
SELECT * FROM products
WHER' at line 1
thank you!
CodePudding user response:
Consider parameterizing your query and avoiding F-string interpolation. Also, the subquery is not necessary if count (not mistaken for COUNT() aggregate) is a column in products table.
Below assumes you are using pyodbc or sqlite3 which use qmarks, ?, for parameter placeholders. If using other DB-APIs (psycopg2, pymysql, etc.) use %s placeholder.
sql = (
"CREATE VIEW [usable products] AS "
" SELECT * FROM products "
" WHERE count < ?"
)
self.mycursor.execute(sql, [self.counts.value()])
