gpt4 book ai didi

MySQL:根据字段为0或1从2个不同表获取信息的特定查询

转载 作者:行者123 更新时间:2023-11-29 08:26:03 25 4
gpt4 key购买 nike

我认为这是一个非常常见的问题,并且可能是重复的,但我不知道如何搜索它。这是我的场景:我有 3 个表:寄存器、食物和食谱。简化的表结构:

寄存器

id | item_id |类型(0 种食物|1 种食谱)

(item_id 可以是食物 ID 或食谱 ID)

食物

id |名称 |重量

食谱

id |名称 |数量成分

我想要的是查询寄存器表并根据类型字段为 0 或 1 返回食物或食谱名称(以及每个表中的一些特定字段,例如食物中的重量和食谱中的 num_ingredients)。

如果表结构不是最好的,我会感谢帮助我找到最好的解决方案。预先非常感谢。

最佳答案

您需要使用 UNION 组合两个详细信息表,然后使用 ID将它们与 Registers 表JOIN >输入字段。

SELECT item_id, name, data
FROM Registers r
JOIN (SELECT 0 type, id, name, weight as data
FROM Foods
UNION
SELECT 1 type, id, name, num_ingredients as data) x
ON r.item_id = x.id AND r.type = x.type

GolezTroi 的答案是,他在 JOIN 之后执行 UNION 可能会更好,因为它在加入之前不会创建大型临时表。

关于MySQL:根据字段为0或1从2个不同表获取信息的特定查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com