Ich bin neu in Python und hoffe, dass jemand mir helfen kann herauszufinden, wie man eine SQL-Abfrage für jedes Element in einem Tupel mit Python durchführen.Durchführen einer SQL-Abfrage für jedes Element in einem Tupel
Ich habe einen SQL Express-Server, der eine Reihe von Datenbanken für ein Badge-Reader-System enthält. Was ich versuche, ist, die Benutzer-IDs, die gescannt haben, in einen bestimmten Leser zu ziehen und dann diese IDs zu verwenden, um die tatsächlichen Benutzernamen zu erhalten.
Momentan kann ich die Abfrage ausführen, die die Benutzer-ID abruft und eine Abfrage für die andere Tabelle mit nur einer ID ausführt. Was in der Lage sein soll, ein Problem zu lösen, scheint die zweite Abfrage für jede Benutzer-ID in dem Tupel auszuführen, das bei der ersten Abfrage erstellt wurde. Unten ist der Code für die zwei Funktionen, die ich gerade benutze.
def get_id():
global cardholder
global cur
cur.execute("SELECT user_id FROM db.table WHERE badgereaderid = 'badgereader1'")
cardholder = []
rows = cur.fetchall()
for row in rows:
if row == None:
break
cardholder.append(row[0])
print(cardholder)
def get_name():
global cardholder
global user
global cur
cur.execute("SELECT FirstName, LastName FROM db.table WHERE user_id= '%s'" % cardholder)
while 1:
row = cur.fetchone()
if row == None:
break
user = row[0] + row[1]
können Sie Schleife über 'cardholder' ... Abgesehen: welche Modul verwenden Sie SQL Server Express zu verbinden? – bernie
Ich benutze pyodbc – mtnbiker1185
Ok in diesem Fall verwenden Sie '?' Anstelle von '% s' und übergeben Sie Werte als zweites Argument (und stellen Sie sicher, dass es iterierbar ist) zu' .execute() '... – bernie