Мучался, мучался, почему форма для редактирования не заполняется, вымучал.
Оказывается
model->setQuery(" select kids.id, kids.name, kids.birthday, schools.name, kids.year_finish, kids.next_point from kids "
" LEFT JOIN schools on kids.school=schools.id "
, db);
выбирает записей больше, чем
tableModel = new QSqlRelationalTableModel(this, db);
tableModel->setTable("kids");
tableModel->setRelation( tableModel->fieldIndex("school"),
QSqlRelation("schools", "id", "name"));
if (!tableModel->select())
В том числе запрос выбирает записи, в которых тянущееся в другую таблицу поле school пусто, а в модели и соответственно в маппере этой записи нет. Как заставить выбирать tableModel такие записи? Создавать view не прокатит, потому что мне же их ещё и редактировать надо.