mysql - 试图将我的成分收集到我的 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 的全部成分
我希望这是有道理的。谢谢你。
解决方案
我想你可以用这个
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。
推荐阅读
- python - 如何在 If 语句中发出通知但在 Python 中继续 While 循环?
- stripe-payments - 为小额交易充值客户余额
- javascript - 如何在 Jest 中正确模拟类模块?
- python - 如何检查文件是否存在?
- python - 在pymysql中获取执行的sql语句
- c# - List.Where("string".Contains()) 在 LINQ 查询中返回 NULL
- c++ - 如何使用 Fstream 从文件中的内容求和
- python - 读取 CSV 文件中的多个不同列,并将不同的列名匹配到一个统一变量
- c# - 如果 SQL 搜索查询未能找到值,如何显示消息
- python - Pip 升级 cv2