gpt4 book ai didi

mysql - SQL 列值作为表名

转载 作者:行者123 更新时间:2023-11-29 21:46:15 25 4
gpt4 key购买 nike

我想根据第一个表中的值从多个表中进行选择。我如何使用 a.property_type 的值作为表名?

SELECT * from properties a
//LEFT JOIN caracteristics_apartments
LEFT JOIN caracteristics_+a.property_type b
ON a.property_id = b.property_id
WHERE a.property_id = 1

因此,如果我在属性中有记录:

id_property: 1
property_name: Apartment 3 rooms
property_type: apartment

然后,我使用 property_type 中的值从另一个名为 Apartment_characteristics 的表(由 property_type + "_characteristics"组成)中进行选择,以获取属性特征。

最佳答案

这种事情通常表明数据库设计没有正确规范化,可以通过一些重构来将您尝试连接的核心字段合并到单个连贯的表中;我会将其视为第一个停靠点。

否则 - 同一查询不可能连接到不同表的不同行,它们都必须连接到同一位置。您可以在运行时构建动态查询以从每个单独的表中进行选择,但在实践中这并不是一个好主意;它可能非常脆弱且缓慢。

如果您确实必须按照这些思路做一些事情,那么您需要加入的是针对别名 b 的所有可能表的 LEFT JOIN (旁注 - 有意义的名字使事情变得更容易调试(而不是 a、b、c 等),然后使用 COALESCE 组合它们的值,将它们的列组合成单个形状。但我不会那样做;代码可能会庞大且笨重,并且应用程序不会特别清楚哪些数据来自何处。

关于mysql - SQL 列值作为表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086458/

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