脚本宝典收集整理的这篇文章主要介绍了CakePHP – 构建复杂查询,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
SELECT `Artist`.`id`,CONCAT_WS(' ',`PErson`.`First_name`,`Person`.`last_name`,`Person`.`post_nominal_letters`) AS `name`,`Portfolio`.`count` From `people` as `Person`,`artists` as `Artist` LEFT OUTER JOIN (SELECT `PRoduct`.`artist_id`,COUNT(DISTINCT `Product`.`id`) AS `count` From `product_availabilITies` AS `ProductAvailability`,`products` AS `Product` LEFT OUTER JOIN `order_details` AS `OrderDetail` ON `Product`.`id` = `OrderDetail`.`product_id` LEFT OUTER JOIN `orders` AS `Order` ON `Order`.`id` = `OrderDetail`.`order_id` WHERE `ProductAvailability`.`id` = `Product`.`product_availability_id` AND `Product`.`online` = true AND (`ProductAvailability`.`name` = 'For sale') OR ((`ProductAvailability`.`name` = 'Sold') AND (DATEDIFF(Now(),`Order`.`order_date`) <= 30)) group by `Product`.`artist_id`) AS `Portfolio` ON `Artist`.`id` = `Portfolio`.`artist_id` WHERE `Artist`.`person_id` = `Person`.`id` AND `Artist`.`online` = true GROUP BY `Artist`.`id` ORDER BY `Person`.`last_name`,`Person`.`first_name`;
$这 – > Artist-> unbindModel(阵列( ‘的hasMany’=>阵列( ‘组合’)));
然后建立关系
$this->Artist->bindModel(array('hasOne'=>array('Portfolio')));
最后,您必须创建其他关系
$this->Artist->bindModel(array( 'belongsTo'=>array( 'Product'=>array( 'clasName'=>'Product','foreignKey'=> false,'conditions'=>'Product.id = Artist.product_id' ),'ProductAvaibility'=>array( 'clasName'=>'ProductAvaibility','conditions'=>'ProductAvaibility.id = Product.product_avaibility_id' ),'OrderDetail'=>array( 'clasName'=>'OrderDetail','conditions'=>'Product.id = OrderDetail.product_id' ),'Order'=>array( 'clasName'=>'Order','conditions'=>'Order.id = OrderDetail.order_id' ),) ));
现在,当关系完成后,你可以找到你的发现
$this->Artist->find('all',array( 'conditions'=>array( 'Artist.online'=>true ),'group'=>array( 'Artist.id' ),'order'=>array( 'Person.last_name','Person.first_name',) ))
我希望它对你有用
以上是脚本宝典为你收集整理的CakePHP – 构建复杂查询全部内容,希望文章能够帮你解决CakePHP – 构建复杂查询所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。