QSqlRelationalTableModel - 对同一个表的两个引用,相同的外键

时间:2016-02-21 13:28:48

标签: c++ qt qsqldatabase

我有3张桌子:

enter image description here

我想使用QTableViewQSqlRelationalTableModel在GUI上显示订单表(订单的开始和结束日期,用户的姓氏,服务名称和服务价格) 。这是我设置表格和视图的地方:

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);

但是,当我进行第三次setRelation调用时,它似乎覆盖了第二个调用:我只能看到GUI上的价格,而不是名称和价格。我需要将两个字段 - 服务表中的名称和价格放到我的视图中。

1 个答案:

答案 0 :(得分:2)

试试这个:

this->model->setRelation(4, QSqlRelation("SERVICE", "id", "name, price"));