加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP MySQL配方搜索基于提供的成分

发布时间:2020-12-13 22:31:52 所属栏目:PHP教程 来源:网络整理
导读:说我有一个食谱数据库,我想根据我的成分搜索它们. 应该有3个表: 食谱(rid,rname), 成分(iid,iname), 关系(摆脱,iid) 接下来,让我们想象一下我有’吐司’的食谱和’面包和黄油布
说我有一个食谱数据库,我想根据我的成分搜索它们.

应该有3个表:

食谱(rid,rname),
成分(iid,iname),
关系(摆脱,iid)

接下来,让我们想象一下我有’吐司’的食谱和’面包和黄油布丁’的配方 – 吐司有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”; “水”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读