unirse a tablas personalizadas usando comandos magento
He estado tratando de unir dos tablas personalizadas usando los comandos de magento. Después de buscar encontréeste bloque de código genérico
$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');
Siguiendo esto como plantilla, he intentado unir mis tablas, pero solo he devuelto errores, comoincorrect table name
otable doesn't exist
o algún otro error.
Solo para aclarar las cosas, alguien puede corregirme en mi entendimiento.
$collection = Mage::getModel('module/model_name')->getCollection();
Obtiene una instancia de tu modelo. Dentro de ese modelo está la tabla que contiene los datos requeridos (para este ejemplo, llamaré la tabla p)
$collection->getSelect()
Seleccionar datos de la tabla p
->join()
Requiere tres parámetros para unir dos tablas juntas
PARAM1
array('table_alias'=>$this->getTable('module/table_name'))
'el nombre que le da a la tabla' => 'la tabla que desea agregar a la colección (esto se ha configurado en la carpeta del modelo)'
PARAM2
'main_table.foreign_id = table_alias.primary_key'
Este bit no lo consigo (aunque parece sencillo)
mi tabla principal (p) no tiene un ID externo (tiene su clave principal, ¿es también su ID externo)?
tiene que ser igual al nombre aliado que dio en param1
PARAM3
'main_table.foreign_id = table_alias.primary_key'
obtener todo de nombre alised
¿Dónde me he equivocado en mi comprensión?