CAKEPHP 条件
CAKEPHP conditions
一辆车会有颜色服务,也许会有轮胎服务
我正在使用这些 table:汽车、car_service、证书、颜色和轮胎。
使用 CAKEPHP 条件,我如何列出颜色服务的日期和(如果存在)轮胎服务的日期此行还将包含颜色服务证书的 ID。
我需要这个查询:
`SELECT
certificate.date,
cs.date,
csl.date,
car.model,
tires.brand,
car.color
FROM car
INNER JOIN car_service cs ON cs.color_id = color.id
LEFT JOIN certificate cert ON cert.color_id = cs.color_id`
所以我以这样的 table 结尾:
`Service
-------
service_id| color_id | tires_id | date
111 | 123 | | 2016-26-04 08:00:00
112 | 123 | 456 | 2016-27-04 09:00:00`
我需要获取 111 服务和 112 服务的证书日期。
我试试这个,但只带上轮胎服务的日期:
$certified= $this->find('first',
Array('conditions' => Array('Car.plate' => $plate,
'CarService.color_id= color.id',
),
'type' => 'LEFT',
'contain' => Array(
'Car',
'Color' => array('Certificate'),
'Tires' => array('Certificate')
),
'order' => array('CarService.created DESC'),
'recursive' => -1
)
);
`
您正在使用 LEFT
,但实际上并未使用任何 JOIN
。
仅添加 LEFT
不会使您的查找使用 JOIN。您需要实际将 'joins' 添加到类似于此示例的数组:
'joins' => array(
array(
'table' => 'car_services',
'alias' => 'CarService',
'type' => 'INNER',
'conditions' => array(
'CarService.color_id = Color.id'
)
),
array( ... // put your left join here
),
一辆车会有颜色服务,也许会有轮胎服务
我正在使用这些 table:汽车、car_service、证书、颜色和轮胎。
使用 CAKEPHP 条件,我如何列出颜色服务的日期和(如果存在)轮胎服务的日期此行还将包含颜色服务证书的 ID。
我需要这个查询:
`SELECT
certificate.date,
cs.date,
csl.date,
car.model,
tires.brand,
car.color
FROM car
INNER JOIN car_service cs ON cs.color_id = color.id
LEFT JOIN certificate cert ON cert.color_id = cs.color_id`
所以我以这样的 table 结尾:
`Service
-------
service_id| color_id | tires_id | date
111 | 123 | | 2016-26-04 08:00:00
112 | 123 | 456 | 2016-27-04 09:00:00`
我需要获取 111 服务和 112 服务的证书日期。
我试试这个,但只带上轮胎服务的日期:
$certified= $this->find('first',
Array('conditions' => Array('Car.plate' => $plate,
'CarService.color_id= color.id',
),
'type' => 'LEFT',
'contain' => Array(
'Car',
'Color' => array('Certificate'),
'Tires' => array('Certificate')
),
'order' => array('CarService.created DESC'),
'recursive' => -1
)
);
`
您正在使用 LEFT
,但实际上并未使用任何 JOIN
。
仅添加 LEFT
不会使您的查找使用 JOIN。您需要实际将 'joins' 添加到类似于此示例的数组:
'joins' => array(
array(
'table' => 'car_services',
'alias' => 'CarService',
'type' => 'INNER',
'conditions' => array(
'CarService.color_id = Color.id'
)
),
array( ... // put your left join here
),