从所有表中选择

dla*_*t86 9 mysql

我的数据库中有很多表都具有相同的结构.我想从所有表中选择而不必像这样列出所有表:

SELECT name FROM table1,table2,table3,table4
Run Code Online (Sandbox Code Playgroud)

我试过但这不起作用:

SELECT name FROM *
Run Code Online (Sandbox Code Playgroud)

有没有办法选择数据库中的所有表而不列出查询中的每个表?

Kon*_*ter 5

我正在使用在线文件浏览器,每个目录都有自己的表

由于一个原因,这是非常无用的:当你有大约200个文件(这种情况是真的,是吗?)你有大约200个表.如果每个目录中有大约一千个文件..等等.在某些时候,你要么处理速度慢,而从数据库中选择要么购买更多的服务器资源.

我认为您应该更改数据库结构:只需从向parent_folder_id表中添加列开始,之后您可以将所有行(文件和目录 - 因为目录也是一个文件 - 这里可以添加type列来确定这一行)放入一张桌子.


sas*_*rog 0

听起来您想将每个表联合在一起,这样您就可以得到结果,就好像它们是一个大表一样。您需要完整地写出查询,例如

SELECT * FROM table1 UNION SELECT * FROM table2 UNION ... SELECT * FROM tableN
Run Code Online (Sandbox Code Playgroud)

复制和粘贴可能是您的朋友。

我很好奇为什么你有很多具有相同结构的不同表?

  • `每个目录都有自己的表` OMG (6认同)
  • 当您的查询速度很慢且有 5000 条记录时,则需要进行一些索引或重新设计表结构。与使用具有正确索引和设计的单个表相比,为每个目录创建一个表会带来更多的性能问题。 (2认同)