= select(ObjectDB)
result.scalars.all()
получаю полный список полей
а если делаю
result = select(ObjectDB.field_1, ObjectDB.field_2)
resuls.scalars.all()
только первое поле
почему так?
Потому что скаляр с терминах SQL — это единичное значение в противовес строке. У тебя есть execute, который возвращает список Row, а есть scalars, который возвращает список скаляров, что является как бы row[0]
Но почему если я запрашиваю весь объект, в скаляре я получаю все поля, а если запрашиваю отдельные, то только одно поле?
Скаляр — это как бы row[0]. Если ты запршиваешь объект, то у тебя в первом индексе будет как раз таки он
Да, получается у меня сама постановка вопроса не верная)
Это если одну колонку извлекаешь? На всех колонках такое же не должно сработать, верно?
Ну если .scalar(), то должно быть значение только из одной колонки?
запросил один объект, получил объект целиком. Запросил два объекта - получил первый. А будет ли объект плоским или нет - это уже его детали
Получается значение из первой колонки, первого ряда?)
Не уверен) надо завтра проверить
Обсуждают сегодня