首页 > 解决方案 > 试图将我的成分收集到我的 MySQL 中的食谱中

问题描述

我正在尝试将多种成分添加到我可以弄清楚的食谱中,但是如果您要检查可用于成分的项目,我想将所有成分收集到食谱中。我希望这是有道理的。

recipe_rel 中的 create_id 是查找应该创建哪个配方的项目。

recipes Table                               recipe_rel table

Recipe_id | item_needed_id | item_amount    recipe_id | create_id
-----------------------------------------   ---------------------
    1     |      5         |      3              1    |    12
-----------------------------------------   ---------------------
    1     |      2         |      2              2    |    18
-----------------------------------------   ---------------------
    2     |      8         |      1
-----------------------------------------
    2     |      3         |      1

所以为了澄清我的问题,一个项目可能是煤——所以如果我要查看煤,我想看看我能用煤创造什么。

我试图做类似的事情

SELECT * FROM recipe WHERE item_needed_id = 2

我还尝试从我选择的那个中获取配方 ID 并使用它,但这似乎是很多硬编码,这是针对 PHP 页面的。

但是我自己无法弄清楚我应该写什么来获得这两种成分,因为现在我只得到了需要 id 2 的行

我的结果应该是所有 recipe_id = 1 并且还包括是否应该有一个项目也使用(在这个例子中)煤炭的情况,应该在煤炭查看页面上列出。

就像煤炭可以用来制造 X 和 Y 你会在煤炭查看页面上看到 X 和 Y 的全部成分

我希望这是有道理的。谢谢你。

标签: mysql

解决方案


我想你可以用这个

Select Recipe_id, item_needed_id,item_amount From recipe 
Where Recipe_id in (SELECT Recipe_id FROM recipe WHERE item_needed_id = 2)
order by Recipe_id;

结果

Recipe_id   item_needed_id  item_amount
    1              5            3
    1              2            2

这显示了所有食谱,包括 item_need 和在其成分列表中具有 item_needed 2 的所有食谱的数量。我不明白你为什么发布 recipe_rel id。


推荐阅读