Цитата:
Изначально опубликовано Maxim Gorbunov
Поподробнее, пожалуйста. Как вы это делали? Из вашего сообщения совершенно не понятно, "где собака порылась". fetchMode 1:1 решил все проблемы? Сейчас попробую, конечно, но... хм, очень сомневаюсь.
Код:
X++:
void test()
{
Test1 t1;
Test2 t2;
Test3 t3;
QueryRun qr;
Query q = new Query();
QueryBuildDataSource qbd;
QueryBuildDataSource qbd1;
qbd = q.addDataSource(tablenum(Test1));
qbd1 = qbd.addDataSource(tablenum(Test2));
qbd1.addLink(fieldnum(Test1,ID),fieldnum(Test2,ID));
qbd1.joinMode(JoinMode::EXISTSJOIN);
qbd1.fetchMode(0);
qbd1 = qbd.addDataSource(tablenum(Test3));
qbd1.addLink(fieldnum(Test1,ID),fieldnum(Test3,ID));
qbd1.joinMode(JoinMode::EXISTSJOIN);
qbd1.fetchMode(0);
qr =new QueryRun(q);
while(qr.next())
{
t1 = qr.getNo(1);
t2 = qr.getNo(2);
t3 = qr.getNo(3);
print t1.ID," , ",t1.B," | ", t2.ID," , ",t2.B," | ", t3.ID," , ",t3.B;
}
}
Тест пример:
Стурутура таблиц и данные
Test1(ID, B)
1 a
2 b
3 c
4 d
Test2(ID,B)
1 c
1 d
2 e
3 g
5 f
Test3(ID, B)
2 a
2 b
3 b
Результат:
2 , b | 0 , | 0 ,
3 , c | 0 , | 0 ,
Имхо, то что нужно

С уважением, программист группы компаний "Счастливый Кроха".