私は3つのテーブルを持っています:
QTableView
と を使用して GUI に Orders テーブル (注文の開始日と終了日、ユーザーの姓、サービス名、サービス価格) を表示したいと思いますQSqlRelationalTableModel
。テーブルとビューを設定する場所は次のとおりです。
this->ordersTable = new QTableView(this);
this->model = new QSqlRelationalTableModel(this, db->getDB());
this->model->setTable("ORDERS");
this->model->setRelation(3, QSqlRelation("USERS", "id", "lastname"));
this->model->setRelation(4, QSqlRelation("SERVICE", "id", "name"));
this->model->setRelation(4, QSqlRelation("SERVICE", "id", "price"));
this->model->select();
this->ordersTable->setModel(this->model);
this->ordersTable->hideColumn(0);
しかし、3 番目の呼び出しを行うsetRelation
と、2 番目の呼び出しが上書きされるようです。名前と価格の両方ではなく、GUI でのみ価格を確認できます。そして、サービス テーブルの名前と価格の両方のフィールドをビューに配置する必要があります。