1

我知道 Zend_Db_Select 的使用是可选的,但我想知道是否有办法使用它来生成以下 SQL:

         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
4

1 回答 1

0

不支持多个表 JOIN。 Zend_Db_Select被编程为仅支持一个数组元素作为连接表参数名称,如果它是一个Zend_Db_ExprZend_Db_Select实例,它将为其分配别名“t”,假设您正在输入单个表名称/表达式。

您可以将其拆分为两个joinLeft,这可能对将来的维护更好,并且与您想要的没有区别。

于 2012-06-09T21:21:59.727 回答