私は、magento のコマンドを使用して 2 つのカスタム テーブルを結合しようとしています。検索した後、この一般的なコードのブロックに出くわしました
$collection = Mage::getModel('module/model_name')->getCollection();
$collection->getSelect()->join( array('table_alias'=>$this->getTable('module/table_name')),
'main_table.foreign_id = table_alias.primary_key',
array('table_alias.*'),
'schema_name_if_different');
これをテンプレートとして、テーブルを結合しようとしましたが、またはその他のエラーなどのエラーしか返されませんでしincorrect table name
たtable doesn't exist
。
物事を明確にするために、誰かが私の理解を修正してください
$collection = Mage::getModel('module/model_name')->getCollection();
モデルのインスタンスを取得します。そのモデル内には、必要なデータを保持するテーブルがあります (この例では、テーブル p と呼びます)
$collection->getSelect()
テーブル p からデータを選択
->join()
2 つのテーブルを結合するには 3 つのパラメーターが必要です
PARAM1
array('table_alias'=>$this->getTable('module/table_name'))
'テーブルに付けた別の名前' => 'コレクションに追加するテーブル (これはモデル フォルダーに設定されています)'
PARAM2
'main_table.foreign_id = table_alias.primary_key'
このビットはわかりません(しかし、それは簡単に思えます)
私のメインテーブル(p)には外部IDがありません(主キーがあります-それも外部IDですか)?
param1 で指定した別名と同じでなければなりません
PARAM3
'main_table.foreign_id = table_alias.primary_key'
アリスの名前からすべてを取得
私の理解のどこが間違っていますか?