2012-06-09 66 views
1

我知道Zend_Db_Select對象的使用是可選的,但我想知道是否有使用它來生成的SQL語句的方式:使用Zend_Db_Select對象包括幾個表在一個連接

  LEFT JOIN (pages p 
      , core_url_rewrite url) 
      ON p.page_id = mi.page_id 
      AND url.page_id = p.page_id 

..或者如果這是不支持。從我所看到的你一次只能加入一張桌子。如果妳包括表格作爲Zend_Db_Expr:

->joinLeft(new Zend_Db_Expr('(pages p, core_url_rewrite url)'), 
    'ON p.page_id = mi.page_id 
    AND url.page_id = p.page_id') 

的話,我想最終像下面這樣,這是無效的

  LEFT JOIN (pages p 
      , core_url_rewrite url) AS t 
      ON p.page_id = mi.page_id 
      AND url.page_id = p.page_id 

回答

0

多個表的連接不被支持。 Zend_Db_Select被編程爲僅支持一個數組元素作爲連接表參數名稱,假如您輸入的是單個表名/表達式,並且它是Zend_Db_ExprZend_Db_Select實例,它將爲其分配別名「t」。

你可以把它分成兩個joinLeft's,這對未來的維護可能會更好,並且與你想要的沒有什麼不同。

相關問題