我不是很熟悉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()