gpt4 book ai didi

python - 如果不满足条件,则返回该用户的数据,否则另一个查询

转载 作者:行者123 更新时间:2023-11-29 17:54:34 25 4
gpt4 key购买 nike

我有一个包含这些数据的表格:

  ID, Name, LastName, Date, Type

我必须在表中查询 ID 为 1 的用户。获取该行,如果该用户的 Type 不为 2,则返回该用户,否则返回具有相同 LastName 和 Date 的所有用户。

最有效的方法是什么?我所做的是:

query1 = SELECT * FROM clients where ID = 1

query2 = SELECT * FROM client WHERE LastName = %s AND Date= %s

我执行第一个查询

 cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
if(row['Type'] ==2 )
cursor.execute(sql2(row['LastName'], row['Date']))
Save results
else
results = rows?

是否有更有效的方法使用连接来做到这一点?例如,如果我只有左连接,我如何询问用户的类型是否为 2 ?如果要返回多行,如何将它们分配给Python中的对象数组?

最佳答案

只需执行两个查询即可避免此处出现循环:

q1 = """
SELECT c.* FROM clients c where c.ID = 1
"""

q2 = """
SELECT b.* FROM clients b
JOIN (SELECT c.* FROM
clients c
c.ID = 1
AND
c.Type = 2) a
ON
a.LastName = b.LastName
AND
a.Date = b.Date
"""

然后您只需执行这两个查询即可获得所需的所有结果,而无需循环,因为您的循环将执行 n 个查询,其中 n 等于匹配的行数,而不是在一次连接中获取所有行数。没有更多细节作为最终结果所需的数据结构,因为您似乎只关心保存结果,这应该给您您想要的。

关于python - 如果不满足条件,则返回该用户的数据,否则另一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48978504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com