Distinct by field don't work for firebird

32 views
Skip to first unread message

Константин Комков

unread,
Nov 7, 2019, 1:47:10 AM11/7/19
to web...@googlegroups.com
Hello!
db().select(db.tt_on_day.TIMETABLE_ID,distinct=db.tt_on_day.TIMETABLE_ID)
>>>SELECT DISTINCT ON (tt_on_day.TIMETABLE_ID) tt_on_day.TIMETABLE_ID FROM tt_on_day

with True - work
db().select(db.tt_on_day.TIMETABLE_ID,distinct=True)
>>>SELECT DISTINCT tt_on_day.TIMETABLE_ID FROM tt_on_day

And I don't understand one more thing. If I do query like that:
rows = db((db.t_fac.FULL_NAME != 'НЕИДЕНТИФИЦИРОВАННОЕ') &
             
(db.a_groups.FO == 1) &
             
(db.a_groups.INACTIVE == 0)).select(db.t_fac.id,db.t_fac.FULL_NAME,distinct=True,
                                                  join
=[db.a_groups.on(db.tt_main.GROUP_ID == db.a_groups.id),
                                                        db
.t_fac.on(db.a_groups.FAC == db.t_fac.id)])
Then I want to get id and FULL_NAME in circle:
faculties = {}

for row in rows:
        faculties
[row.t_fac.id] = row.t_fac.FULL_NAME
but I have error, becouse row is dict now and I should write:
for row in rows:
        faculties
[row['id']] = row['FULL_NAME']
Why row type is dict? For example,
<Row {'id': 1, 'a_groups': <Set (a_groups.FAC = 1)>, 'FULL_NAME': 'Агрономии и биотехнологии'}>.
Reply all
Reply to author
Forward
0 new messages