gpt4 book ai didi

MySQL 使用子查询获取表名?

转载 作者:行者123 更新时间:2023-11-29 04:58:46 26 4
gpt4 key购买 nike

我正在尝试从 MySQL 数据库中选择一些数据。

我有一个包含业务详细信息的表格,以及一个包含交易列表的单独表格。由于我们有多个交易

business_details

id | business_name | trade_id | package_id
1 | Happy News | 12 | 1

这是主表,包含商家名称、交易ID和包裹ID

shop_trades

id | trade
1 | newsagents

这包含业务的贸易类型

配置包

id | name_of_trade_table
1 | shop_trades
2 | leisure_trades

这包含要查看的交易表的名称

所以,基本上,如果我想查找贸易类型(例如,报刊亭、快餐等),我会查看 XXXX_trades 表。但我首先需要从 configuration_packages 表中查找 XXXX 的名称。

我通常会做的是 2 个 SQL 查询:

SELECT business_details.*, configuration_packages.name_of_trade_table
FROM business_details, configuration_packages
WHERE business_details.package_id = configuration_packages.id
AND business_details.id = '1'

这给了我要查找商品名的数据库表的名称,所以我查找表的名称

SELECT trade FROM XXXX WHERE id='YYYY'

其中 XXXX 是作为第一个查询的一部分返回的表的名称,YYYY 是包的 ID,也是从第一个查询返回的。

有没有办法合并这两个查询,以便我只运行一个?

我以前使用过子查询,但只在查询的 SELECT 端使用 - 而不是 FROM 端。

最佳答案

通常,这由单个查询中的联合处理。

规范化让你得到一个逻辑模型。这有助于更好地理解数据。实现模型时通常会进行非规范化。此处的子类型通常以两种方式实现:

  • 将现有的表格分开,这会增加检索的难度。这导致您对如何检索数据产生疑问。
  • 具有子类型指示符的所有子类型的通用表。这可能会导致某些子类型的列始终为空。它简化了数据访问,并可能改变子类型在代码中的处理方式。

如果子类型的额外列相对很少被访问,那么您可以使用混合实现,其中公共(public)列在类型表中,而部分或所有子类型列在子类型表中。这对编码来说更复杂。

关于MySQL 使用子查询获取表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960457/

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