Съединенията се използват най-добре в Yii чрез създаване на Relations, така че няма да е необходимо да пишете сложни заявки
Започнете с добавяне на външни ключове във вашите sql таблици (напр. добавете идентификатор на пациент с външен ключ в стол)
След това, ако регенерирате модела си, можете да видите релациите автоматично добавени (или можете ръчно да добавите релациите)
public function relations()
{
return array(
'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
);
}
И в модела на стола ще видите релацията
'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),
Само дефинирането на релацията ви позволява достъп до стойностите в заявения модел като $model->relationName, ако искате да използвате колона в условие 'where', използвайте следната заявка във вашата моделна функция(и)
$patients=Patient::model()->findAll(array(
'condition' => "$field like '%$value%'",
'with'=>array('chairs'),
'select'=> "*",
));
Ключовата дума "with" е важна и може да приеме масив от списък с релации, които да включи в заявката. Условието на заявката ще се прилага за всички включени таблици. Можете да пропуснете ключовата дума "with" тук, ако не искате да заявите поле от друга таблица и се нуждаете само от свързаните изходни данни.
И можете да стигнете до столовете, определени на пациента от
foreach($patients as $patient)print_r($patient->chairs);
Съществуват и други подходи, като един обсъден тук
За да се свържете повече с отношенията, отидете тук