连接多个具有相同前缀名称的表

Posted

技术标签:

【中文标题】连接多个具有相同前缀名称的表【英文标题】:Join Multiple Tables That Have Names with Same Prefix 【发布时间】:2018-12-18 07:44:13 【问题描述】:

有没有办法连接所有名称以相同前缀开头的表?

例如,具有相同前缀 Customer_Feedback10、Customer_Feedback11、Customer_Feedback12、Customer_Feedback13 等的表具有相同的列名和结构。我想加入所有人并做一个SELECT * FROM

我知道我可以使用以下方法获取所有表名:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables 
WHERE TABLE_NAME LIKE 'Customer_Feedback%'

我想要实现的是加入所有以前缀“Customer_Feedback”开头的表。然后显示数据。

【问题讨论】:

这可能会有所帮助:daniweb.com/programming/databases/threads/516567/… @Brian Tompsett 感谢您提供正确的格式。 这种问题是设计不佳的症状。无论如何,听起来你想要一个 UNION 而不是 JOIN @Strawberry 你说得对。 “糟糕的设计”。这是一场噩梦,因为数据库正在生产中,现在我必须想办法在不关闭所有内容的情况下对其进行重组。 【参考方案1】:

mysql 中没有这样的功能可以做到这一点,但您可以尝试使用准备好的语句制作一些过程来制作动态连接语句。

【讨论】:

很高兴知道这一点。既然我知道动态连接可能是唯一的出路,我将不得不决定是否应该在整个数据库变得太大之前开始对整个数据库进行结构更改。我担心随着数据库的增长并抛出垃圾数据,对此的动态声明可能会使事情变得非常糟糕。真的不要相信我写复杂动态语句的技能。所以我像躲避瘟疫一样避开它们。你能举例说明我可以开始并继续工作吗? @CmailUltimate 一直忙于工作,但我确实记得过去回答过一些动态查询

以上是关于连接多个具有相同前缀名称的表的主要内容,如果未能解决你的问题,请参考以下文章

有效地指定具有相同前缀的多个列名称

php函数以获取数据,将具有通用字段名称的多个表连接起来并显示输出[重复]

如何连接具有选择性重复记录的表? (oracle10g)

内连接2个具有相同列名的表

连接两个具有相同键但不同字段的表

自动创建一个视图,该视图将所有其他具有相同名称但不同前缀和不同模式的视图联合起来