如何在cakephp2.x中的find请求中使用Union
我需要知道如何在cakephp中使用Union条件和find请求,因为我必须在同一字段中选择具有多个条件的数据 我有3种型号:如何在cakephp2.x中的find请求中使用Union,php,mysql,cakephp-2.0,union,Php,Mysql,Cakephp 2.0,Union,我需要知道如何在cakephp中使用Union条件和find请求,因为我必须在同一字段中选择具有多个条件的数据 我有3种型号: class Zone extends AppModel { var $name = 'Zone'; var $belongsTo = "Fournisseur"; } 及 及 我想从ZoneTaif获取数据,条件如下: conditions 1 : ZoneTarif.poids = 40 and ZoneTarif.zone_id=1 conditions
class Zone extends AppModel
{
var $name = 'Zone';
var $belongsTo = "Fournisseur";
}
及
及
我想从ZoneTaif获取数据,条件如下:
conditions 1 : ZoneTarif.poids = 40 and ZoneTarif.zone_id=1
conditions 2 : ZoneTarif.poids = 50 and ZoneTarif.zone_id=7
conditions 3 : ZoneTarif.poids = 90 and ZoneTarif.zone_id=10
.........etc.
因此,我如何将Union与find结合使用:
$this->ZoneTarif->recursive = 2;
$data1 = $this->ZoneTarif->find('all',array('conditions'=>array('ZoneTarif.poids'=>40,'ZoneTarif.zone_id IN'=>1)));
$data2 = $this->ZoneTarif->find('all',array('conditions'=>array('ZoneTarif.poids'=>50,'ZoneTarif.zone_id IN'=>7)));
使用简单查询时,我丢失了所有连接和表别名:
$v = $this->ZoneTarif->query("SELECT * FROM zone_tarifs INNER JOIN zones
WHERE zone_id = 6 and poids = 10 and zones.id = zone_tarifs.zone_id
UNION
SELECT * FROM zone_tarifs INNER JOIN zones
WHERE zone_id = 4 and poids = 40 and zones.id = zone_tarifs.zone_id
");
谢谢你的帮助
$this->ZoneTarif->recursive = 2;
$data1 = $this->ZoneTarif->find('all',array('conditions'=>array('ZoneTarif.poids'=>40,'ZoneTarif.zone_id IN'=>1)));
$data2 = $this->ZoneTarif->find('all',array('conditions'=>array('ZoneTarif.poids'=>50,'ZoneTarif.zone_id IN'=>7)));
$v = $this->ZoneTarif->query("SELECT * FROM zone_tarifs INNER JOIN zones
WHERE zone_id = 6 and poids = 10 and zones.id = zone_tarifs.zone_id
UNION
SELECT * FROM zone_tarifs INNER JOIN zones
WHERE zone_id = 4 and poids = 40 and zones.id = zone_tarifs.zone_id
");