1

私は、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 nametable 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'

アリスの名前からすべてを取得

私の理解のどこが間違っていますか?

4

1 に答える 1