Почему первый результат пропускается при выполнении запроса SQLite из кода Python?Python

Программы на Python
Anonymous
Почему первый результат пропускается при выполнении запроса SQLite из кода Python?

Сообщение Anonymous »

Первый результат пропускается при выполнении запроса из кода Python.

Код: Выделить всё

rooms = cur2.execute("SELECT r.* FROM rooms r JOIN room_members rm ON r.id = rm.room_id JOIN users u ON u.id = rm.user_id WHERE u.username = ?;",(usr,)).fetchall()
Я хочу получить все комнаты, частью которых является этот пользователь, room_members, играющие отношения «многие ко многим», но по какой-то причине, если результатом является одна комната, он возвращает None therooms var пуст, и если комнат больше одной, она пропускает первую и возвращает остальные. но если я запускаю запрос в оболочке SQL, он работает нормально и показывает правильные результаты.
Надеюсь, я хорошо это описываю.
Это может быть связано с тем, как обрабатывается результат fetchall(), или может возникнуть проблема с обработкой подключения к базе данных или курсора. поэтому я попробовал fetchone(), удалив sqlite3.Row, обеспечив согласованность типов данных, изменив курсор на

Код: Выделить всё

rooms = cur.execute('''
SELECT r.*
FROM rooms r
JOIN room_members rm ON r.id = rm.room_id
JOIN users u ON u.id = rm.user_id
WHERE u.username = ?;
''', (usr,)).fetchall()
Я не могу понять, что вызывает эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/790 ... from-a-pyt

Вернуться в «Python»