如何在一个QTableView中显示多个qsqltablemodel的内容

How to display content of multiple QSqlTableModels in one QTableView?

本文关键字:显示 qsqltablemodel 一个 QTableView      更新时间:2023-10-16

我有一个MySql表,我们叫它x:

CREATE TABLE x (
    Id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
    A int unsigned NOT NULL,
    B int,
    FOREIGN KEY (A) REFERENCES y(Id)
);

然后我有另一个表,我们叫它y:

CREATE TABLE y (
    Id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
    First varchar(255),
    Last varchar(255)
);

我想显示表x在一个QTableView和在地方列A从表x我想显示列FirstLast从表y从行Id等于A从表x

你有什么想法吗?如果我的解释不够清楚,请告诉我。

您可以使用QSqlQueryModel与sql连接查询:

QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT x.Id, y.First, y.Last, x.B FROM x "
                "LEFT JOIN y ON x.A = y.Id");
QTableView *view = new QTableView;
view->setModel(model);
view->show();