我不太熟悉SQL。当用户请求一个或多个数据时,我需要获取关于客户的所有信息。一个用户可以有多个电话号码。
在这个查询中,正确显示了客户的姓名、姓氏和电子邮件,但电话号码不正确,具体来说显示的是列表中的第一个ID,但实际上不属于该客户。如果去掉LIMIT 1,将会显示数据库中的所有电话号码。
def find_client(cur, name=None, lastname=None, email=None, phone=None):
cur.execute("""
SELECT cl.name, cl.lastname, cl.email, pn.number
FROM clients cl, PhoneNumber pn
WHERE pn.client_id = cl.id
AND (cl.name=%s OR cl.lastname=%s OR cl.email=%s OR pn.number=%s);
""", (name, lastname, email, phone))
return cur.fetchall()