我正在尝试填充一个链接表,但它不起作用。
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
答案 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))