PHP MySQL配方搜索基于提供的成分
发布时间:2020-12-13 22:31:52 所属栏目:PHP教程 来源:网络整理
导读:说我有一个食谱数据库,我想根据我的成分搜索它们. 应该有3个表: 食谱(rid,rname), 成分(iid,iname), 关系(摆脱,iid) 接下来,让我们想象一下我有’吐司’的食谱和’面包和黄油布
说我有一个食谱数据库,我想根据我的成分搜索它们.
应该有3个表: 食谱(rid,rname), 接下来,让我们想象一下我有’吐司’的食谱和’面包和黄油布丁’的配方 – 吐司有2种成分(面包和黄油) – 布丁可能有面包和黄油,还有面粉,鸡蛋和水 – 所以这就是总共5个. 我的问题是,根据搜索中提供的成分构建SQL查询.如果我在我的搜索中提交3种成分 – 面包,黄油和鸡蛋 – 那么(从讨论的2个食谱中)只应生成一个结果 – 吐司! – 因为没有足够的成分来制作布丁! 那么这样的SQL查询实际上是什么样的呢?我已经尝试了一切,谷歌搜索了一切,现在我的大脑不再处理它了. 解决方法
不知道这是不是最好的方法,但是你给它的例子会起作用:
SELECT * FROM recipes WHERE rid NOT IN ( /* exclude all recipes with other ingredients */ SELECT rid FROM relationship WHERE iid NOT IN (1,2,4) ) 抱歉我的英文=) 编辑:成分的ID与你问题的顺序相同,所以1是面包,2是黄油,4是鸡蛋: “IID”; “INAME”“1”,“面包”“2”; “黄油”“3”; “面粉”“4”; “鸡蛋”“5”; “水” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |