新足迹

 找回密码
 注册

精华好帖回顾

· 祝我的Aussie男友情人节快乐! (2006-2-14) hereIam · 新房还是老房?谈一谈澳洲老房屋和式样风格(最后附上我身边的经典案例,全文完!) (2012-11-10) anata_t
· 参加活动——情浓中秋 今夕何夕 (2011-8-29) amon54 · 猫唱 (2012-8-14) 征途归来
Advertisement
Advertisement
查看: 1330|回复: 7

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

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

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

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

求教求教~~~~~

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


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


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

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


创建个函数


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

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部