исправь ошибку в коде Ошибка: Incorrect number of bindings supplied. The current statement uses 8, and there are 0 supplied.
import sqlite3

def merge_user_tables(db_path1, db_path2, output_db_path):
    """
    Объединяет таблицы users из двух баз данных SQLite, обрабатывая повторяющиеся столбцы.

    Args:
        db_path1: Путь к первой базе данных.
        db_path2: Путь к второй базе данных.
        output_db_path: Путь к выходной базе данных.
    """

    try:
        conn1 = sqlite3.connect(db_path1)
        conn2 = sqlite3.connect(db_path2)
        conn_out = sqlite3.connect(output_db_path)
        cursor1 = conn1.cursor()
        cursor2 = conn2.cursor()
        cursor_out = conn_out.cursor()

        # Получаем данные из первой таблицы
        cursor1.execute("SELECT * FROM users")
        data1 = cursor1.fetchall()
        columns1 = [description[0] for description in cursor1.description]

        # Получаем данные из второй таблицы
        cursor2.execute("SELECT * FROM users")
        data2 = cursor2.fetchall()
        columns2 = [description[0] for description in cursor2.description]

        # Объединяем столбцы
        all_columns = set(columns1 + columns2)

        # Создаем таблицу в выходной базе данных
        create_table_query = f"CREATE TABLE IF NOT EXISTS merged_users ({', '.join(all_columns)})"
        cursor_out.execute(create_table_query)

        # Вставляем данные в выходную таблицу
        for row1 in data1:
            row_dict = dict(zip(columns1, row1))
            merged_row = [row_dict.get(col, '') for col in all_columns]
            cursor_out.execute(f"INSERT INTO merged_users VALUES ({', '.join(['?'] * len(merged_row))})", merged_row)

        for row2 in data2:
            row_dict = dict(zip(columns2, row2))
            merged_row = []
            for col in all_columns:
                if col in row_dict:
                    value = row_dict[col]
                else:
                    value = ''
                merged_row.append(value)

            # Проверка на дубликаты и объединение
            cursor_out.execute("SELECT * FROM merged_users WHERE " + " AND ".join([f"{col} = ?" for col in columns1]))
            existing_row = cursor_out.fetchone()
            if existing_row:
                # Объединяем данные, если есть дубликат
                updated_row = []
                for i, val in enumerate(merged_row):
                    if val != '':
                        if existing_row[i] != '' and existing_row[i] != val:
                            updated_row.append(f"{existing_row[i]}, {val}")
                        else:
                            updated_row.append(val)
                    else:
                        updated_row.append(existing_row[i])
                cursor_out.execute(f"UPDATE merged_users SET {', '.join([f'{col} = ?' for col in all_columns])} WHERE " + " AND ".join([f"{col} = ?" for col in columns1]), updated_row + list(existing_row))
            else:
                cursor_out.execute(f"INSERT INTO merged_users VALUES ({', '.join(['?'] * len(merged_row))})", merged_row)


        conn_out.commit()

    except sqlite3.Error as e:
        print(f"Ошибка: {e}")
    finally:
        if conn1:
            conn1.close()
        if conn2:
            conn2.close()
        if conn_out:
            conn_out.close()


# Пример использования:
db1_path = "tg_in.db"  # Замените на путь к вашей первой базе данных
db2_path = "tg_out.db"  # Замените на путь к вашей второй базе данных
output_db_path = "merged.db"  # Замените на путь к выходной базе данных

merge_user_tables(db1_path, db2_path, output_db_path)