尝试将我的食材收集到MySQL中的食谱中

时间:2019-07-13 21:41:24

标签: mysql

我正在尝试允许将多种成分添加到一个配方中,但是我想将所有成分收集到一个配方中(如果您正在检查可用于一种成分中的项目)。我希望这是有道理的。

reciple_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的行

我的结果应该是用cipal_id = 1全部获得结果,并且还包括在某些情况下某个项目也使用(在此示例中)煤炭的情况,应该在煤炭查看页面上列出。

是否可以使用煤来创建X和Y 您会在“煤炭”查看页面上看到X和Y的全部成分

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

1 个答案:

答案 0 :(得分:0)

我认为您可以使用此

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。