如何在一个QTableView中显示多个QSqlTableModels的内容? [英] How to display content of multiple QSqlTableModels in one QTableView?

查看:768
本文介绍了如何在一个QTableView中显示多个QSqlTableModels的内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 MySql 表,我们称它为 x :

I have a MySql table, let's call it 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 :

And then I have another table, let's call it y:

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

我想在一个 QTableView 中显示表 x 并代替表 x 中的列 A 想要显示表 y 中列 First Last 的列,该列的 Id 等于 A 来自表 x .

I want to display table x in one QTableView and in place of column A from table x I want to display columns First and Last from table y from row whose Id is equal to A from table x.

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

Do you have any ideas? Let me know if my explanation is not clear enough.

推荐答案

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

You can use QSqlQueryModel with 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();

这篇关于如何在一个QTableView中显示多个QSqlTableModels的内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆