Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Yii Połączona tabela, ale nie wszystkie wybrane dane są pobierane

Połączenia najlepiej używać w Yii, tworząc Relations , w ten sposób nie będziesz musiał pisać skomplikowanych zapytań

Zacznij od dodania kluczy obcych do tabel sql (np. dodaj identyfikator pacjenta klucza obcego na krześle)

Następnie, jeśli zregenerujesz swój model, zobaczysz relacje dodane automatycznie (lub możesz ręcznie dodać relacje)

public function relations()
{

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

A w modelu krzesła zobaczysz zależność

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

Zdefiniowanie samej relacji umożliwia dostęp do wartości w pytanym modelu jako $model->relationName, jeśli chcesz użyć kolumny w warunku „gdzie”, użyj następującego zapytania w funkcjach modelu

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

Słowo kluczowe „with” jest ważne i może przyjmować tablicę relacji do uwzględnienia w zapytaniu. Warunek zapytania będzie miał zastosowanie do wszystkich uwzględnionych tabel. Możesz pominąć tutaj słowo kluczowe "z", jeśli nie chcesz wysyłać zapytania do pola z innej tabeli i potrzebujesz tylko połączonych danych wyjściowych.

Do krzeseł przydzielonych pacjentowi można dotrzeć przez

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

Istnieją również inne podejścia , takie jak omówione tutaj

Aby lepiej poznać relacje, przejdź tutaj




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL kolumna numeracyjna - MySQL

  2. Uzyskaj poprzednią wartość po aktualizacji - MySql

  3. GROUP BY znacznik czasu co 15 minut, w tym brakujące wpisy

  4. jak dodać godziny i minuty w curdate mysql

  5. PHP i MySQL:mysqli_num_rows() oczekuje, że parametr 1 to mysqli_result, podana wartość logiczna