Проблема вывода данных при помощи Python в MySQL, вывод дублируется несколько раз

Рейтинг: 0Ответов: 0Опубликовано: 14.05.2023

По идее, код должен выводить 2 результата в таком формате:

Формат вывода

Но по какой-то причине, результат дублируется несколько раз. Я пробовал разные подходы, но ничего не помогало. Подскажите чем вы пользуетесь в таких ситуациях.

На скриншоте виден весь код

Так же, вот содержимое таблиц:

Таблица users

Таблица items

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]}")

Ответы

Ответов пока нет.