Joins används bäst i Yii genom att skapa relationer , på så sätt behöver du inte skriva komplexa frågor
Börja med att lägga till främmande nycklar i dina sql-tabeller (t.ex. lägg till ett patient-ID för främmande nyckel i stolen)
Om du sedan återskapar din modell kan du se relationerna läggas till automatiskt (eller så kan du lägga till relationerna manuellt)
public function relations()
{
return array(
'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
);
}
Och i stolmodellen ser du relationen
'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),
Om du bara definierar relationen får du tillgång till värdena i den efterfrågade modellen som $model->relationName, om du vill använda en kolumn i 'var'-tillstånd, använd följande fråga i din modellfunktion(er)
$patients=Patient::model()->findAll(array(
'condition' => "$field like '%$value%'",
'with'=>array('chairs'),
'select'=> "*",
));
Nyckelordet "med" är viktigt och kan ta en rad listor med relationer som ska inkluderas i frågan. Frågevillkoret kommer att gälla för alla tabeller som ingår. Du kan hoppa över nyckelordet "med" här om du inte vill fråga ett fält från en annan tabell och bara behöver länkad utdata.
Och du kan nå stolarna som tilldelats patienten med
foreach($patients as $patient)print_r($patient->chairs);
Det finns också andra tillvägagångssätt , som en som diskuterades här
För att få mer kontakt med relationer, gå här