Цитата(magoldnew @ 5.5.2013, 13:08)
Фищка в том что в данном случае я не использую запрос, я вывожу данные в поля с помощью метода setRelation(int column, const QSqlRelation & relation), а метод QSqlRelation(const QString & tableName, const QString & indexColumn, const QString & displayColumn) принимает только имя таблицы и запихнуть ему sql запрос не получится, да и в данном случае как я понимаю в модельку возвращается все как надо, скорее всего метод setRelation не дружит с NULL и поэтому ничего не возвращает в данные поля и моделька продолжает отоброжать предыдущее значения... значит надо как-то реализовать проверку на текущее значение в методе setRelation и в случае пустого значения очищать элементы в модели....
Т.е. внешний ключ в главной таблицы имеет значение NULL и соответственно метод setRelation не может установить связь
Попробую пошаманить с методом bool isNull(const QString & name) const класса QSqlRecord
Тогда можно определить этот запрос в виде VIEW ... но все же я советовал бы использовать модель QSqlQueryModel вместо QSqlTableModel.
Значительно упростится вывод необходимого. На счет модификации данных - сложнее точно не будет, чем пытаться это определить для сложных отношений пробуя настроить табличную модель.