gpt4 book ai didi

Mysql从相似但不相关的表中获取数据

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

我的数据库中有产品表,如下所示:

shop1_products
shop2_products
shop3_products
.....
....
...
shop100_products

我想显示现场尝试使用 union 的所有 table 上的产品,但我认为 100 个 table 不行。

我知道,如果我们通过制作一个包含 shopid 列的产品表来做到这一点,事情就会变得简单。但在我的网站上逻辑是不同的,我不能这样做,因为这种结构会迫使我在其他模块上做双重工作。

我正在考虑使用存储过程来执行此操作,但对于存储过程来说是新手。

您认为我们如何以有效的方式做到这一点?

如果存储过程最适合执行此操作,请向我提供示例代码或引用链接

最佳答案

do like this put all the table names in a temp table then follow these steps in while loop.
Then create a table results with all the required columns

for each @tablename
insert into results
select product name ,id,category... from @tablename
repeat

Then finally select distinct * from results

--------------------------------代码------------- ----------------------------------------------------

create table temp(id int auto_increment primary key,tblname varchar(100));

insert into temp(tblname)
VALUES('shop1_products'),('shop2_products'),('shop3_products')...('shop100_products');


select min(id),max(id) into @vmin,@vmax from temp;
select @vmin,@vmax;

create table results(productname varchar(100),id int,category varchar(100)...);

while(@vmin <= @vmax)
Do
select tblname into @tablename from temp;

INSERT INTO results(product name ,id,category...)
select product name ,id,category... from @tablename

SET @vmin=@vmin+1;

END WHILE;

select distinct * from results;

关于Mysql从相似但不相关的表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213632/

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