sql >> Base de Datos >  >> RDS >> Mysql

Yii Se unió a la tabla pero no se recuperan todos los datos seleccionados

Las uniones se usan mejor en Yii creando Relaciones, de esa manera no necesitarás escribir consultas complejas

Comience agregando claves externas en sus tablas sql (por ejemplo, agregue un ID de paciente de clave externa en la silla)

A continuación, si regenera su modelo, puede ver las relaciones agregadas automáticamente (o puede agregar las relaciones manualmente)

public function relations()
{

    return array(
        'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
    );
}

Y en el modelo de silla verás la relación

'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),

La definición de la relación por sí sola le permite acceder a los valores en el modelo consultado como $model->relationName, si desea usar una columna en la condición 'where', use la siguiente consulta en las funciones de su modelo

$patients=Patient::model()->findAll(array(
                'condition' => "$field like '%$value%'",
                'with'=>array('chairs'),
                'select'=> "*",
                )); 

La palabra clave "con" es importante y puede tomar una serie de listas de relaciones para incluir en la consulta. La condición de consulta se aplicará a todas las tablas incluidas. Puede omitir la palabra clave "con" aquí si no desea consultar un campo de otra tabla y solo necesita vincular los datos de salida.

Y puede llegar a las sillas asignadas al paciente por

foreach($patients as $patient)print_r($patient->chairs);

También hay otros enfoques, como uno discutido aquí

Para estar más en contacto con las relaciones, vaya aquí