我可以将原始数字加入到SQL查询中吗?

时间:2013-08-09 16:00:29

标签: python mysql sql sqlalchemy

这是一个奇怪的问题,所以我真的不知道如何表达它或开始寻找答案。抱歉,文字墙。

这种情况(不幸的是,复杂到足以开始)是:

我有一个现有的进程,它接受一个sql select语句,运行它,然后将结果插入到另一个表中。

此选择完全基于一列,但可能会导致多行,因为它所针对的表与列描述的表具有多对一关系。所以,我将获得一些值作为我们称之为columnA的输入,并将该值插入到sql中以生成随后插入的行。

扭曲:现在我想执行一个相当复杂的操作,包括迭代和日期比较,以及一般在python中最好的奇怪事情。我想要做的是维护我现有的进程,但然后以某种方式将我需要的值推送到sql查询中。问题是,这些值是按column1而不是columnA,所以我不能做一个简单的替换。

我在想的是我可能能够做的基本上是使用python函数生成一个带有column1,valueINeed对的假表,然后以某种方式将其加入到现有查询中。< / p>

可以这样做吗?怎么样?有更好的想法吗?

编辑:超简化示例。如果它仍然令人困惑,请告诉我。

如果我制作的方法如下:

def generate_complicated_pairs(colA):
  s = SessionObject
  rows = s.query(tableB).filter(tableB.colA = colA)
  # do some complicated stuff, end up with:
  results = [(rows1col1value, True), (rows2col1value, False), (rows3col1value, False....]
  return results

现在我有

input = 5

rowsToBeInserted = connection.execute("SELECT colA, col1, col2, col3 FROM tableB where colA=%s" % input)

我希望像

这样的东西
rowsToBeInserted = connection.execute("SELECT colA, col1, col2, col3, col4 FROM tableB JOIN %s ON ???? where colA=%s" % results, input)

0 个答案:

没有答案