gpt4 book ai didi

从另一个表中选择的表的mysql联合

转载 作者:行者123 更新时间:2023-11-30 22:04:21 25 4
gpt4 key购买 nike

我有大约 300 个具有相同字段类型的表,我还有另一个表,其中包含这 300 个表及其状态的列表。是否有一个查询解决方案来合并根据状态选择的表。

假设 300 个表中的每一个都有用户记录(id、名字、姓氏)。另一个表有表和状态的记录(表名,状态代码(事件/非事件))。我想从所有事件表中创建用户记录的联合。

最佳答案

这是有可能的。但是为什么不只使用一个包含列 (id, first_name, last_name, table_name) 的表呢?查询将很简单:

select
m.id, m.first_name, m.last_name
from
mytable m inner join tables t on
m.table_name = t.table_name
where
t.status='Active'

有了适当的索引,它就会表现出色。

不更改表结构的解决方案需要动态查询,但我不推荐这样做:

select
group_concat(
concat('select * from ', table_name)
separator ' union all '
) gc
from
status
where
status='Active'
into @sql;

prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;

(这会创建一个union all query到字符串sql中,然后执行它。表需要适当转义,还要注意group_concat的大小限制)

关于从另一个表中选择的表的mysql联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42235890/

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