Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用Zend_Db_Select在一个联接中包含多个表_Mysql_Left Join_Zend Db Select - Fatal编程技术网

Mysql 使用Zend_Db_Select在一个联接中包含多个表

Mysql 使用Zend_Db_Select在一个联接中包含多个表,mysql,left-join,zend-db-select,Mysql,Left Join,Zend Db Select,我知道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包含: ->joi

我知道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

不支持多个表联接。 Zend_Db_Select被编程为仅支持一个数组元素作为联接表参数名,如果它是Zend_Db_Expr或Zend_Db_Select实例,它将为其指定别名“t”,假设您输入的是单个表名/表达式

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