Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Yii Đã tham gia bảng nhưng không phải tất cả dữ liệu đã chọn đều được truy xuất

Joins được sử dụng tốt nhất trong Yii bằng cách tạo Quan hệ, theo cách đó bạn sẽ không cần phải viết các truy vấn phức tạp

Bắt đầu bằng cách thêm các khóa ngoại vào các bảng sql của bạn (ví dụ:thêm một khóa ngoại ngữ BNId trên ghế)

Tiếp theo, nếu bạn tạo lại mô hình của mình, bạn có thể thấy các quan hệ được thêm tự động (hoặc bạn có thể thêm các quan hệ theo cách thủ công)

public function relations()
{

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

Và trong mô hình ghế, bạn sẽ thấy mối quan hệ

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

Chỉ riêng việc xác định mối quan hệ cho phép bạn truy cập vào các giá trị trong mô hình được truy vấn dưới dạng $ model-> RelationsName, nếu bạn muốn sử dụng một cột trong điều kiện 'where', hãy sử dụng truy vấn sau trong (các) hàm mô hình của bạn

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

Từ khóa "with" rất quan trọng và có thể lấy một mảng danh sách các quan hệ để đưa vào truy vấn. Điều kiện truy vấn sẽ áp dụng cho tất cả các bảng được bao gồm, Bạn có thể bỏ qua từ khóa "với" tại đây nếu bạn không muốn truy vấn một trường từ bảng khác và chỉ cần dữ liệu đầu ra được liên kết.

Và bạn có thể đến ghế được chỉ định cho bệnh nhân bằng

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

Cũng có những cách tiếp cận khác, như một phương pháp được thảo luận tại đây

Để liên hệ nhiều hơn với các mối quan hệ, hãy truy cập đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tìm thấy bất kỳ hàng phù hợp nào trong bảng người dùng

  2. Làm thế nào để nhận được ngày đầu tiên của mỗi tháng tương ứng trong mysql?

  3. Chèn hàng loạt với PHP

  4. ER_NOT_SUPPORTED_AUTH_MODE:Máy khách không hỗ trợ giao thức xác thực do máy chủ yêu cầu; xem xét nâng cấp máy khách MySQL

  5. Truy vấn PHP / MySql VÀ / HOẶC để tìm kiếm nâng cao