Показать сообщение отдельно
Старый 25.01.2005, 11:56   #1  
ATimTim is offline
ATimTim
Участник
 
395 / 13 (1) ++
Регистрация: 10.06.2004
Адрес: Питер
Join трех таблиц (две к одной)
Скорее всего этот вопрос уже поднимался на форуме, по-моему, один раз я его даже видел мельком, но второй раз не нашел. =(
Проблема в том, что я не могу соединить три таблицы. (две к одной !)
аналог на SQL
PHP код:
SELECT *
  
FROM InventJournalTrans 
         inner join
       InventDim 
         on InventJournalTrans
.ToInventDimId InventDim.inventDimId 
         inner join
       InventTable  
         on  InventTable
.ItemId InventJournalTrans.ItemId 
код Axapta

PHP код:
 qbds_jTrans query.addDataSource       (tablenum(InventJournalTrans)); // здесь qbds_jTrans = SELECT * FROM InventJournalTrans
qbds_Dim    qbds_jTrans.addDataSource (tablenum(InventDim)); // здесь qbds_jTrans = SELECT * FROM InventJournalTrans JOIN * FROM InventDim
qbds_jItems qbds_jTrans.addDataSource (tablenum(InventTable));  // проблемная строка, после нее сбрасывается join с предыдущей таблицей и qbds_jTrans становится равной SELECT * FROM INVENTJOURNALTRANS

qbds_jTrans.addLink  (fieldnum(InventJournalTransItemId), fieldnum(InventTableItemId));
qbds_Dim.addLink  (fieldnum(InventJournalTransToInventDimId), fieldnum(InventDim,InventDimid)); 
на строчке
PHP код:
qbds_jItems qbds_jTrans.addDataSource (tablenum(InventTable)); 
qbds_jTrans вновь становится равным SELECT * FROM InventJournalTrans
Подскажите как быть в даной ситуации и почему такое происходит?!