OperationalError:“FROM”附近:语法错误

时间:2014-12-12 07:28:06

标签: sql sqlite

我正在尝试填充一个链接表,但它不起作用。

cursor.execute("INSERT INTO typelink (CardId, TypeId) SELECT CardId WHERE CardId=:CardId FROM CardComponent; SELECT TypeId WHERE Type=: tempType FROM CardType",{"CardId":id_name,"tempType": card_type[y]})

这是错误:

OperationalError: near "FROM": syntax error

2 个答案:

答案 0 :(得分:0)

语法为SELECT ... FROM ... WHERE ...,而非SELECT ... WHERE ... FROM ...

此外,一个SELECT的两个单独INSERT语句的语法不是我遇到过的;我怀疑它是否有效。

答案 1 :(得分:0)

要进行两次独立查找,不应使用单个SELECT,而应使用两个独立的子查询:

INSERT INTO typelink (CardId, TypeId)
VALUES ((SELECT CardId FROM CardComponent WHERE CardId=:CardId),
        (SELECT TypeId FROM CardType WHERE Type=:tempType))

从数据库中读取的CardId值是您正在搜索的相同的值,因此您可以直接使用它:

INSERT INTO typelink (CardId, TypeId)
VALUES (:CardId,
        (SELECT TypeId FROM CardType WHERE Type=:tempType))