2013-06-17 4 views
1

У меня есть стол MySql, давайте назовем его х:Как отображать содержимое нескольких QSqlTableModels в одном QTableView?

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

А потом у меня есть еще один стол, давайте назовем его у:

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

Я хочу, чтобы отобразить таблицу x в одном QTableView и вместо столбца A от Таблица х Я хочу, чтобы отобразить столбцы Первый и Последний из таблицы у из строки которого Id равно из таблицы х.

Есть ли у вас идеи? Дайте мне знать, если мои объяснения недостаточно ясны.

ответ

3

Вы можете использовать QSqlQueryModel с SQL JOIN запрос:

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

 Смежные вопросы

  • Нет связанных вопросов^_^