我知道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
答案 0 :(得分:0)
不支持多个表JOIN。
Zend_Db_Select
被编程为仅支持一个数组元素作为连接表参数名称,如果它是Zend_Db_Expr
或Zend_Db_Select
实例,它将为其分配别名't',假设您输入的是单个表名/表达式。
你可以把它分成两个joinLeft
,这对未来的维护可能更好,与你想要的没什么区别。