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

.. またはそれがサポートされていない場合。私が見る限り、一度に 1 つのテーブルにしか参加できません。テーブルを 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は、結合テーブルのパラメーター名として 1 つの配列要素のみをサポートするようにプログラムされており、それがZend_Db_ExprまたはZend_Db_Selectインスタンスの場合、単一のテーブル名/式を入力していると仮定して、エイリアス 't' が割り当てられます。

それを 2 つに分割することができますjoinLeft。これは、将来の維持に適している可能性があり、望んでいたものと何の違いもありません。

于 2012-06-09T21:21:59.727 に答える