sql >> Databáze >  >> RDS >> Mysql

Yii Připojená tabulka, ale nejsou načtena všechna vybraná data

Spojení se nejlépe používají v Yii vytvořením vztahů , takže nebudete muset psát složité dotazy

Začněte přidáním cizích klíčů do vašich SQL tabulek (např. přidejte cizí klíč patientId na židli)

Poté, pokud znovu vytvoříte svůj model, uvidíte, že vztahy byly automaticky přidány (nebo můžete vztahy přidat ručně)

public function relations()
{

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

A v modelu židle uvidíte vztah

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

Samotné definování vztahu vám umožní přístup k hodnotám v dotazovaném modelu jako $model->relationName, pokud chcete použít sloupec v podmínce 'kde', použijte ve svých modelových funkcích následující dotaz

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

Klíčové slovo „with“ je důležité a může zahrnovat řadu seznamů vztahů, které lze do dotazu zahrnout. Podmínka dotazu se bude vztahovat na všechny zahrnuté tabulky. Klíčové slovo "with" zde můžete přeskočit, pokud nechcete dotazovat pole z jiné tabulky a potřebujete pouze propojit výstupní data.

A na křesla přidělená pacientovi se dostanete pomocí

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

Existují i ​​jiné přístupy, jako je ten, o kterém se diskutuje zde

Chcete-li získat více kontaktů se vztahy, přejděte sem




  1. Jak vytvořím alias tabulky v MySQL

  2. Jak správně zapisovat řetězce UTF-8 do MySQL přes rozhraní JDBC

  3. Laravel dotaz k získání výsledků s alespoň jedním prvkem pole?

  4. Nainstalujte řazení utf8 v PostgreSQL