新足迹

 找回密码
 注册

精华好帖回顾

· 柬埔寨之旅 – 高温+日均2万步来看吴哥之美 (2019-12-31) 缓缓 · 【Y叔游记】之 ------ 太平洋小岛邮轮之旅 (2016-1-25) Y叔
· 发布一个预测:澳元在今后几年(两年)大概率维持在4-5之间兑换人民币 (2014-9-11) 大桥西 · 所谓爱情的那些破事儿 (2014-12-31) rebecca83
Advertisement
Advertisement
查看: 1209|回复: 7

求教CakePHP达人~~Query 碰到问题了 [复制链接]

发表于 2011-3-8 06:39 |显示全部楼层
此文章由 小皇爷 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小皇爷 所有!转贴必须注明作者、出处和本声明,并保持内容完整
平时用Codeigniter, 于是想试试CakePHP.

使用CakePHP碰到以下问题了:

数据表如下, pizzas 和 ingredients 是多对多关系
pizzas (id , p_name)
ingredients (id, i_name)
pizzas_ingredients (pizza_id, ingredient_id)

请问如何再CakePHP中查找以下的Query:
列出含有2种或两种以上ingredient的所有 pizza

我已经建立model了,就是不知道该如何弄出查找。
风险管理
Advertisement
Advertisement

特殊贡献奖章

发表于 2011-3-8 08:39 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
跟cake没神马关系吧
你首先在pizzas里面找到所有pizza_id, 然后在pizzas_ingredients里找有两条以上record的pizza_id

数据库达人给你一条sql就搞定了
不过我一般写个hasTwoIngredients()的function给pizza用来判断,以后可能用的着

发表于 2011-3-8 10:19 |显示全部楼层
此文章由 sujiea 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sujiea 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个最好用query直接做,可以变成cake model的一个函数,以方便重用。赞成楼上观点

SELECT pizzas.*,pizzas_ingredients.id FROM pizzas INNER JOIN pizzas_ingredients on pizzas_ingredients.pizza_id = pizzas.id group by pizzas.id having count(*) >2

[ 本帖最后由 sujiea 于 2011-3-8 12:06 编辑 ]

评分

参与人数 1积分 +3 收起 理由
kr2000 + 3 感谢分享

查看全部评分

开心是硬道理!

发表于 2011-3-8 18:12 |显示全部楼层
此文章由 小皇爷 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小皇爷 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 sujiea 于 8/3/2011 10:19 AM 发表
这个最好用query直接做,可以变成cake model的一个函数,以方便重用。赞成楼上观点

SELECT pizzas.*,pizzas_ingredients.id FROM pizzas INNER JOIN pizzas_ingredients on pizzas_ingredients.pizza_id = pizzas.id gr ...


这个我写出来了,我没有用 Join,贴以下我的code:

"SELECT * ".
        "FROM `pizzas` ".
        "WHERE `id` ".
        "IN (".
            "SELECT `pizza_id` ".
            "FROM `pizzas_ingredients` ".
            "GROUP BY `pizza_id` ".
            "HAVING count( `pizza_id` ) >= '2' ".
        ")";
风险管理

发表于 2011-3-8 18:14 |显示全部楼层
此文章由 小皇爷 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小皇爷 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我就是想用 cake model的一个函数做,发现自己不懂得如何将model associate起来。

求教求教~~~~~

发表于 2011-3-8 18:15 |显示全部楼层
此文章由 小皇爷 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小皇爷 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 8/3/2011 08:39 AM 发表
跟cake没神马关系吧
你首先在pizzas里面找到所有pizza_id, 然后在pizzas_ingredients里找有两条以上record的pizza_id

数据库达人给你一条sql就搞定了
不过我一般写个hasTwoIngredients()的function给pizza用来判断,以后可能用的着


有关系的,关系到如何使用model
风险管理
Advertisement
Advertisement

发表于 2011-3-8 18:26 |显示全部楼层
此文章由 sujiea 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sujiea 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 小皇爷 于 2011-3-8 19:15 发表


有关系的,关系到如何使用model


创建个函数
开心是硬道理!

发表于 2011-3-8 21:09 |显示全部楼层
此文章由 小皇爷 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小皇爷 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 sujiea 于 8/3/2011 06:26 PM 发表


创建个函数


放弃了。 用了这个 $this->roduct->query($sql);
风险管理

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部