Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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
如何在cakephp2.x中的find请求中使用Union_Php_Mysql_Cakephp 2.0_Union - Fatal编程技术网

如何在cakephp2.x中的find请求中使用Union

如何在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

我需要知道如何在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 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
                                            ");