0

我正在尝试手动加入,因为我希望得到比 CakePHP 更好的查询结果。

这是我的控制器的编码

$this->ClinicWishList->contain();
$this->set('recordSets', $this->ClinicWishList->find('all', array(
  'fields' => array('ClinicWishList.*', 'ApplicantIssue.issue_desc', 'User.nickname', 'User.role'),
  'joins' => array(
    array(
      'table' => 'applicant_issues',
      'alias' => 'ApplicantIssue',
      'type' => 'left outer',
      'foreignKey' => false,
      'conditions' => array('ClinicWishList.issue_id' => 'ApplicantIssue.id')
    ),
    array(
      'table' => 'users',
      'alias' => 'User',
      'type' => 'left outer',
      'foreignKey' => false,
      'conditions' => array('ApplicantIssue.user_id' => 'User.id')
    )),
    'conditions' => array('ClinicWishList.user_id' => $this->Auth->user('id')),
    'order' => 'ClinicWishList.created DESC'
  )));

CakePHP 生成了这样的 SQL。

在此处输入图像描述

没有错误,但我从这样的连接表中得到了空结果。

在此处输入图像描述

我复制了 SQL 并尝试在 GUI 工具上执行,我收到了这个警告。

在此处输入图像描述

如何在 CakePHP 中修改编码以获得类似 SQL

在此处输入图像描述

而不是这个

在此处输入图像描述

请帮忙,谢谢。

4

1 回答 1

0

你应该改变这一行:

'conditions' => array('ClinicWishList.issue_id' => 'ApplicantIssue.id')

至:

'conditions' => array('`ClinicWishList`.`issue_id` = `ApplicantIssue`.`id`')

并更改此行:

  'conditions' => array('ApplicantIssue.user_id' => 'User.id')

至:

  'conditions' => array('`ApplicantIssue`.`user_id` = `User`.`id`')
于 2013-07-05T05:14:00.460 回答