Проблема вывода данных при помощи Python в MySQL, вывод дублируется несколько раз
По идее, код должен выводить 2 результата в таком формате:
Но по какой-то причине, результат дублируется несколько раз. Я пробовал разные подходы, но ничего не помогало. Подскажите чем вы пользуетесь в таких ситуациях.
Так же, вот содержимое таблиц:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
port="3306",
user="root",
password="root",
database="itproger"
)
myCur = mydb.cursor()
myCur.execute("SELECT * FROM users WHERE login = 'john'")
user = myCur.fetchone()
user_id = user[0]
sql = "SELECT id FROM items WHERE category = %s"
myCur.execute(sql, ('hats',))
res = myCur.fetchall()
arr_items_id = []
for el in res:
arr_items_id.append(el[0])
for el in arr_items_id:
sql = 'INSERT INTO orders(user_id, item_id) VALUES(%s, %s)'
myCur.execute(sql, (user_id, el))
sql = "SELECT users.login, items.title FROM orders JOIN users ON users.id = orders.user_id JOIN items ON items.id = orders.item_id"
myCur.execute(sql)
orders = myCur.fetchall()
for order in orders:
print(f"{order[0]} - {order[1]}")
Источник: Stack Overflow на русском