Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP内部联接不工作_Cakephp_Cakephp 2.4 - Fatal编程技术网

CakePHP内部联接不工作

CakePHP内部联接不工作,cakephp,cakephp-2.4,Cakephp,Cakephp 2.4,我试图将这个mysql查询转换成cakephp,但它不起作用 这是我的mysql查询 SELECT r.id, p.name, r.paid, p.created FROM patients p INNER JOIN reports r ON p.id = r.patient_id AND doctor_name LIKE '%dr.saidul%' 在cakephp中,我尝试了下面的代码 $query_options = array();

我试图将这个mysql查询转换成cakephp,但它不起作用

这是我的mysql查询

SELECT r.id, p.name, r.paid, p.created
       FROM patients p
       INNER JOIN reports r ON p.id = r.patient_id
       AND doctor_name LIKE '%dr.saidul%'
在cakephp中,我尝试了下面的代码

$query_options = array();
            $query_options['fields'] = array( 'Report.id', 'Report.paid','Patient.name','Patient.created' );
            $query_options['conditions'] = array( 'Patient.doctor_name'=>'%dr.saidul%');
            $query_options['joins'] = array('table' => 'Report',
                                    'type' => 'INNER',
                                    'conditions' => array(
                                        'Patient.id = Report.id',
                                    )
                                );

            $patientlist=$this->Patient->find('all', $query_options);
检查sql\u转储后,它会给我以下结果

 SQL Query: SELECT `Report`.`id`, `Report`.`paid`, `Patient`.`name`, `Patient`.`created` FROM `diagnosis`.`patients` AS `Patient` LEFT JOIN `diagnosis`.`upazilas` AS `Upazila` ON (`Patient`.`upazila_id` = `Upazila`.`id`) LEFT JOIN `diagnosis`.`zilas` AS `Zila` ON (`Patient`.`zila_id` = `Zila`.`id`) LEFT JOIN `diagnosis`.`doctors` AS `Doctor` ON (`Patient`.`doctor_id` = `Doctor`.`id`) INNER JOIN `diagnosis`.`Report` ON (`Patient`.`id` => `Report`.`id`) WHERE `Patient`.`doctor_name` = '%dr.saidul%' 

hereerror:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在“=>
报告
id
)附近使用的正确语法,其中
患者
医生姓名='%dr.saidul%''在第1行

您得到了什么错误?数组(数组('table'=>'Report','type'=>'internal','conditions'=>array('Patient.id=Report.id',));您是否加载了报告模型?我已经提交了答案是的。我认为这里的问题是它还可以获取患者关系数据,在输出中,它还可以在这里获取zila。
I have submitted the cakephp inner join code please check it

$query_options = array();
            $query_options['fields'] = array( 'reports.id', 'reports.paid','Patient.name','Patient.created','Patient.doctor_name' );
            $query_options['conditions'] = array( 'Patient.doctor_name'=>'%dr.saidul%');
            $query_options['joins'] = array(
                                array('table' => 'reports',
                                'type' => 'INNER',
                                'conditions' => array(
                                    'Patient.id = reports.id',
                                    )
                                )
                            );
            $patientlist=$this->Patient->find('all', $query_options);