Запрос Pyodbc просто возвращает одну строку

0

Я только начал использовать Pyodbc, и я пытаюсь запустить запрос, который, как я знаю, отлично работает с помощью Sequel Pro. Запрос должен возвращать несколько строк, однако я могу получить только один.

Вот мой запрос:

with connection.cursor() as cursor:
        # Read a single record
        sql = "select 'T4'.'id', 'T4'.'r_id', 'structure'.'l2_id', 'structure'.'l2_name' from (select 'T3'.'id', 'T3'.'r_id', 'item'.'L6_ID' from (select 'T2'.'id', 'report'.'r_id' from (select 'T1'.'id' from (select 'entity'.'id' from 'entity' where 'entity'.'id' = %s) as 'T1' inner join 'coverage' on 'T1'.'id' = 'coverage'.'id') as 'T2' inner join 'report' on 'T2'.'id' = 'report'.'id') as 'T3' inner join 'item' on 'T3'.'r_id' = 'item'.'r_id') as 'T4' inner join 'structure' on 'T4'.'l6_id' = 'structure'.'l6_id'"

 cursor.execute(sql, ('id1',))
 result = cursor.fetchone()
 for row in result:
   print(row[0])

Есть идеи?

Спасибо!

Теги:
pyodbc

2 ответа

1
Лучший ответ

fetchone() выбирает одну строку. Вероятно, вы захотите использовать fetchall(). Например:

rows = cursor.fetchall()
for row in rows:
    print(row[0])
  • 0
    Большой! Спасибо!!!
0

Попробуйте это, возможно:

result = cursor.fetchall()

или же

result = cursor.fetchmany()

Ссылка:

https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchall.html

https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchmany.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню