Joins são melhor usadas no Yii criando Relations , dessa forma você não precisará escrever consultas complexas
Comece adicionando chaves estrangeiras em suas tabelas sql (por exemplo, adicione um patientId de chave estrangeira na cadeira)
Em seguida, se você regenerar seu modelo, poderá ver as relações adicionadas automaticamente (ou você pode adicionar manualmente as relações)
public function relations()
{
return array(
'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
);
}
E no modelo da cadeira você verá a relação
'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),
Definir a relação sozinha permite acessar os valores no modelo consultado como $model->relationName, se você quiser usar uma coluna na condição 'where', use a seguinte consulta em suas funções de modelo
$patients=Patient::model()->findAll(array(
'condition' => "$field like '%$value%'",
'with'=>array('chairs'),
'select'=> "*",
));
A palavra-chave "with" é importante e pode levar uma série de listas de relações para incluir na consulta. A condição de consulta será aplicada a todas as tabelas incluídas. Você pode pular a palavra-chave "com" aqui se não quiser consultar um campo de outra tabela e precisar apenas dos dados de saída vinculados.
E você pode alcançar as cadeiras atribuídas ao paciente por
foreach($patients as $patient)print_r($patient->chairs);
Existem outras abordagens também , como uma discutida aqui
Para entrar em contato com as relações, acesse aqui