zend_db_select объединяется с использованием 3 или более таблиц - PullRequest
0 голосов
/ 07 февраля 2011

Итак, Zend_db_select имеет методы

  `joinUsing(table, join, [columns]) and joinInnerUsing(table, join, [columns])`

  `joinLeftUsing(table, join, [columns])`

  `joinRightUsing(table, join, [columns])`

  `joinFullUsing(table, join, [columns])`

и т.д.

но что, если вы хотите объединить 3 или более таблиц (например, для связи «многие ко многим») .... например: этот запрос:

 SELECT * FROM (j LEFT JOIN e ON j.id = e.eee) LEFT JOIN w ON w.www = e.id

как бы вы поступили с zend_db_select

Ответы [ 2 ]

0 голосов
/ 07 февраля 2011

Попробуйте сделать ... но я не уверен, что работает с двумя полями, но не пробовал с 3 полями

$dbmodel->select(false)
    ->setIntegrityCheck(false)
    ->from(array('t1' => 'table1'))
    ->joinLeft(array('t2' => 'table2'),                                             
        't1.somefeild = t2.somefeild')
    ->joinLeft(array('t3' => 'table3'),                                             
        't2.somefeild = t3.somefeild')

вы пытаетесь построить запрос, а также вы можете проверить запрос по die((string)$select)

0 голосов
/ 07 февраля 2011

Попробуйте использовать подзапрос и Zend_Db_Expr.Подробнее здесь .

...