列出tableView中两个表的数据

List data from two table in tableView

本文关键字:两个 数据 tableView 列出      更新时间:2023-10-16

如何在tableView中列出两个表的数据?

数据库(示例)Sqlite:

tb_sales
  tb_product
  tb_value
  tb_customer_id (Customer Id "tb_customer")
tb_customer
  tb_customer_id (id primary key)
  tb_name
  tb_state

对于QSqlRelationalTableModel,只获取客户端的名称。还需要state

model= new QSqlRelationalTableModel(this); 
model->setTable("tb_sales");
model->setRelation(2, QSqlRelation("tb_customer", "tb_customer_id", "tb_name"));
model->select();
ui->tableView->setModel(model);

QSqlRelationalTableModel只允许从二级表中包含一列。您可以使用QSqlQueryModel创建一个查询,在其中连接两个表:

QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT tb_sales.* , tb_customer.tb_name, tb_customer.tb_state FROM tb_sales LEFT JOIN tb_customer ON tb_sales.tb_customer_id = tb_customer.tb_customer_id");
ui->tableView->setModel(model);