我是Python新手。我有以下代码,我需要多次调用同一个变量。我怎样才能做到这一点?
import psycopg2 as pg
conn = pg.connect("dbname='db' user='user' host='localhost'")
q1 = """SELECT value FROM t1;"""
cur1 = conn.cursor()
cur1.execute(q1)
cur2 = conn.cursor()
for row in cur1:
q2 = """SELECT * FROM t2 WHERE c1 = '%s' or c2 ='%s';"""
#what comes here? %s is the 'value' from q1
cur2.execute(q2)
for row in cur2:
print(row)
Run Code Online (Sandbox Code Playgroud)
我如何告诉 python 对所有出现的“%s”使用“值”?当 %s 仅出现一次时,%(row) 有效:
q2 = """SELECT * FROM t2 WHERE c1 = '%s' or c2 ='%s';"""(%row)
Run Code Online (Sandbox Code Playgroud)
我搜索了 stackoverflow 但找不到我的答案。我希望这不是一个重复的问题。谢谢。
如何在不使用 UNION 的情况下在 Postgresql 中取消透视?我有 100 多列,我正在寻找一种巧妙的方法来做到这一点。
给定表:
id c1 c2 c3
1 X Y Z
2 A B C
3 Y C Z
Run Code Online (Sandbox Code Playgroud)
所需表:
id col
1 X
1 Y
1 Z
2 A
2 B
2 C
3 Y
3 C
3 Z
Run Code Online (Sandbox Code Playgroud) 我想检测层次结构中的潜在循环。我有三张表,每张表都有一个父列和一个子列:

表1包含一些节点(在子列中)及其父节点(在父列中);Table2 包含 Table1 的所有父级(在 child 列中)及其父级(在 parent 列中),依此类推。
例如,如果 A 是 B 的孩子,B 是 C 的孩子,C 是 A 的孩子,那么我有一个循环。
是否可以使用 sql 命令检测周期?
我有三个 RDD (x,y,z),我想加入。所有三个 RDD 的第一个元素是将用于连接的键。
我知道如何加入两个:
rdd1 = x.map(lambda r: (r[0], r[1:]))
rdd2 = y.map(lambda r: (r[0], r[1:]))
rdd1_rdd2 = rdd1.join(rdd2)
Run Code Online (Sandbox Code Playgroud)
如何将第三个 RDD z 加入到 rdd1_rdd2 中?
我有下表:
A B C
1 1 4 =(Formula)
2 1
3 3
4 4
5 4
Run Code Online (Sandbox Code Playgroud)
我需要从A列(即A4)获取B1中第一次出现的值(本例中为4)的地址,并在公式中使用该地址(位于C1中).公式基本上应该做到以下几点:
所有三个步骤都应在一个单一的公式中执行.