首页 > 解决方案 > 如何使用 Python Flask 和 PyOdbc 使用内部查询作为选择语句将值插入表中?从 HTML 表单获取的内部查询的输入

问题描述

环境细节。Windows 10 - Python3.5 - 烧瓶 - SQL SERVER - PyOdbc。

cur.execute("insert into T1 (ID_CUSTOMER, ID_ENVIRONMENT) values (?, ?)",
                    select id from CUSTOMER where name = form['customerId'],
                    select id from ENVIRONMENT where name = form['environmentId'],
                    )

标签: pythonsql-serverflaskpyodbc

解决方案


去掉values,就可以直接使用了INSERT SELECT

INSERT INTO T1 
            (ID_CUSTOMER, 
             ID_ENVIRONMENT) 
SELECT ID_CUSTOMER =(SELECT Max(id) 
                     FROM   customer 
                     WHERE  NAME = 'abc'), 
       ID_ENVIRONMENT = (SELECT Max(id) 
                         FROM   environment 
                         WHERE  NAME = 'xyz') 

Max(id)是为了确保内部查询返回单个值


推荐阅读