Как перебрать массив и записать все данные из массива в sql запрос?

У меня есть функция, которая принимает массив с названием столбцов из таблицы sql (эти столбцы = int): codes = [sp, cv, os, e] # это название столбцов в таблице

Мне надо доставать из массива все эти данные и доставать из sql запроса цену исходя из этих данных массива:

Код работает, но он достаёт значение только первого элемента массива, а надо всех!

Функция:

async def get_option_cost(codes, how_many_compressors, spiral_and_piston, model, price, cold, table):
    if how_many_compressors == 2:
        if spiral_and_piston == 'spiral':
            if cold == 'low':
                compressor = 'twoKM_Low_temperature_refrigeration_unit_model_spirals'
            if cold == 'medium':
                compressor = 'twoKM_Medium_temperature_refrigeration_unit_model_spirals'
        if spiral_and_piston == 'piston':
            if cold == 'low':
                compressor = 'twoKM_Low_temperature_refrigeration_unit_model_semi_hermetic'
            if cold == 'medium':
                compressor = 'twoKM_Medium_temperature_refrigeration_unit_model_semi_hermetic'

    if how_many_compressors == 3:
        if spiral_and_piston == 'spiral':
            if cold == 'low':
                compressor = 'threeKM_Low_temperature_refrigeration_unit_model_spirals'
            if cold == 'medium':
                compressor = 'threeKM_Medium_temperature_refrigeration_unit_model_spirals'
        if spiral_and_piston == 'piston':
            if cold == 'low':
                compressor = 'threeKM_Low_temperature_refrigeration_unit_model_semi_hermetic'
            if cold == 'medium':
                compressor = 'threeKM_Medium_temperature_refrigeration_unit_model_semi_hermetic'

    if how_many_compressors == 1:
            if cold == 'low':
                compressor = 'oneKM_Low_temperature_refrigeration_unit_model_spirals'
            if cold == 'medium':
                compressor = 'oneKM_Medium_temperature_refrigeration_unit_model_spirals'

# НАШ SQL ЗАПРОС
    for i in codes:
        sql = cur.execute(f"SELECT {i} FROM {compressor} WHERE {table} = ?",(model,))

        rows = cur.fetchall()
        costs = [row[0] for row in rows]

        return costs


Ответы (2 шт):

Автор решения: CrazyElf

Забирайте сразу все столбцы.

sql = cur.execute(f"SELECT {','.join(codes)} FROM {compressor} WHERE {table} = ?",(model,))
→ Ссылка
Автор решения: Garetj 37

Изменил sql запрос и поправил свой цикл for:

    sql = cur.execute(f"SELECT {','.join(codes)} FROM {compressor} WHERE {table} = ?",(model,))


    # Извлечение стоимостей
    rows = cur.fetchall()
    for row in rows:
        costs = row
→ Ссылка