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

时间:2013-06-17 20:29:51

标签: c++ mysql qt qtableview qsqltablemodel

我有一个 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)
);

我想在一个 QTableView 中显示表 x ,而不是从表 x I中列 A 想要从 Id 等于 A <的行中显示表 y 中的 First Last 列/ em>来自表 x

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

1 个答案:

答案 0 :(得分:3)

您可以将QSqlQueryModel与sql join query一起使用:

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