sql >> Database teknologi >  >> RDS >> Mysql

Yii Forenet tabel, men ikke alle valgte data hentes

Joins bruges bedst i Yii ved at oprette relationer, på den måde behøver du ikke skrive komplekse forespørgsler

Start med at tilføje fremmednøgler i dine sql-tabeller (f.eks. tilføje et fremmednøgle-patient-id i stolen)

Hvis du derefter genskaber din model, kan du se relationerne automatisk tilføjet (eller du kan manuelt tilføje relationerne)

public function relations()
{

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

Og i stolemodellen vil du se sammenhængen

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

At definere relationen alene giver dig adgang til værdierne i den forespurgte model som $model->relationName, hvis du vil bruge en kolonne i 'hvor' tilstand, skal du bruge følgende forespørgsel i din modelfunktion(er)

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

Nøgleordet "med" er vigtigt og kan tage en række lister over relationer, der skal inkluderes i forespørgslen. Forespørgselsbetingelsen vil gælde for alle de inkluderede tabeller. Du kan springe nøgleordet "med" over her, hvis du ikke ønsker at forespørge et felt fra en anden tabel og kun skal have linket til outputdataene.

Og du kan nå de stole, der er tildelt patienten, ved at

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

Der er også andre tilgange , som en diskuteret her

For at komme mere i kontakt med relationer, gå her




  1. MySQL:Forkert nøglefil til tabellen '/tmp/#sql_185e_0.MYI' prøv at reparere den

  2. hvordan man fjerner duplikerede værdier fra MySQL-tabellen

  3. Ormlite eller sqlite Hvilken er god til Android-perspektiv?

  4. Hvordan ændres MySQL root-kontoadgangskoden på CentOS7?