我有一个带有两个表'NNDATA'和'TEAM'的sqlite数据库。 TEAM有一列'cpids'。 NNDATA有8列,列[0]是'CPID',但并非所有列都匹配来自TEAM表的cpids。
来自TEAM的cpids与来自NNDATA的CPID匹配,我想返回来自NADATA列[2]'NeuralMagnitude'和列[5]'地址'的匹配行条目
我试过了:
conn = sqlite3.connect("Rain.db")
c = conn.cursor()
address = c.execute('select Address from NNDATA where CPID=(select cpids from TEAM)').fetchall()
nn_mag = c.execute('select NeuralMagnitude from NNDATA where CPID=(select cpids from TEAM)').fetchall()
conn.close()
但它只给了我一个结果,我做了一个列表比较并获得了100个匹配,所以我99%确定它找不到所有的匹配。
我也尝试将cpids变为变量:
conn = sqlite3.connect("Rain.db")
c = conn.cursor()
cpids = c.execute('select cpids from TEAM').fetchall()
address = c.execute('select Address from NNDATA where CPID={cpids}'.format(cpids=cpids)).fetchall()
nn_mag = c.execute('select NeuralMagnitude from NNDATA where CPID={cpids}'.format(cpids=cpids)).fetchall()
conn.close()
但似乎没有人认识到地址和神经概念。
我看到了一些sqlite解决方案,但它们似乎运行了几行代码,我认为对于Python它必须在一行中调用? 感谢。
答案 0 :(得分:0)
@snow是对的,谢谢:
conn = sqlite3.connect("Rain.db")
c = conn.cursor()
address = c.execute('select Address from NNDATA where CPID in (select cpids from TEAM)').fetchall()
nn_mag = c.execute('select NeuralMagnitude from NNDATA where CPID in (select cpids from TEAM)').fetchall()
conn.close()