我正在使用 sqlite3 在 python 2.7 上构建数据库,并且遇到了一个小问题。
基本上我有两个表,每个表存储以下信息:
推文:
user_name,
tweet_time,
tweet_text
用户:
user_name,
user_description,
user_followers,
user_verified,
user_location
我正在尝试添加一个函数,提示用户输入字符串,并且两个表中包含提交的字符串(可在 tweet_text 列中找到)的每一行都将被删除。
我遇到的问题是“用户”表不包含 tweet_text 列,因此我不确定如何删除该表中的相应行,而无需实际添加 tweet_text 列。
到目前为止,我所拥有的只是“Tweet”表上的一个简单的删除查询。
delete_string = raw_input("Which string would you like to be removed from your database?: ")
c.execute("DELETE FROM Tweet WHERE tweet_text LIKE ?", ('%'+delete_string+'%',))
我想知道是否有任何方法可以删除“用户”表中的相应行,而不必显式包含 tweet_text 作为列。
我对 python 相对缺乏经验,这是我第一次使用查询编写,因此我们将不胜感激任何帮助!
提前致谢。
最佳答案
我只是从我的脑海里写下这个,但尝试这个查询:
DELETE tweet, user
FROM Tweet tweet JOIN User user ON tweet.user_name = user.user_name
WHERE tweet.tweet_text LIKE ?;
尽管您正在寻找的是 this ,删除级联
。
这会自动从外键表中删除它,该表将是您的 User
表。
确保在 SQLite 中启用外键支持
PRAGMA foreign_keys = ON;
关于python - 用Python查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998417/