使用2个查询的别名 - SQLite

时间:2014-01-10 22:14:05

标签: python sqlite

我正在使用Python 3.3和sqlite3为SQLite数据库编写一些SQL查询(我很擅长)。我有2个与此查询BinsShelves相关的表格。我要求用户提供一些输入以创建bin并将其放在shelf上。然后,查询从用户处获取name的{​​{1}}并使用它来获取shelf。然后,用户输入的用于创建shelf_id(此时只是名称)的数据与bin一起用于创建新记录(shelf_id表包含binbin_idname列。)

现在我已经使用了这些查询,但如果我可以一次性完成,我不想再查询数据库两次:

shelf_id

所以我写这篇文章是为了一次性完成这一切:

results = cur.execute('SELECT shelf_id FROM Shelves WHERE name = ?', [n_bin_shelf])
shelf_id = results.fetchone()
cur.execute("INSERT into Bins (name, shelf_id) VALUES (?,?)", [n_name, shelf_id[0]])

问题是在分号后不保留别名cur.execute( "SELECT shelf_id s_id FROM Shelves s WHERE s.name = ?; INSERT into Bins (name, shelf_id) VALUES (?,s_id)", [n_bin_shelf, n_name] ) 。如果我将文字替换为s_id而不是别名,则执行正常。

如何在分号中保留别名以成功执行此查询?

更新:我最终使用的是完美而且更干净的东西:

shelf_id

0 个答案:

没有答案