繁体   English   中英

MySQL select 来自具有不同列数的多个表

[英]MySQL select from multiple tables that have different columns number

我是 MySQL 的新手,所以我真的需要一些帮助来解决我面临的问题:我在同一个数据库中有7 个表,其中包含一些来自测试的数据:这 7 个表有不同的列,但它们都有这些列:

  • name
  • second_name
  • status

status中添加了每个学生的当前状态(接受或拒绝),我想使用second_name显示name ,来自where status = accepted的 7 个表中的 second_name 。

我设法从 1 表显示

SELECT name, second_name FROM test1 WHERE status="accepted";

但我无法弄清楚如何从所有 7 个中显示。如果有人能给我提示,这对我来说将是一个真正的帮助。

如果您不介意多次接受测试的重复学生姓名,您可以尝试使用UNION ALL来完成:

(SELECT name, second_name FROM test1 WHERE status='accepted')
UNION ALL
(SELECT name, second_name FROM test2 WHERE status='accepted')
UNION ALL
(SELECT name, second_name FROM test3 WHERE status='accepted')
-- ...and so on

恕我直言,最好规范化数据库以将所有名称、第二名称和状态放在单独的表中,并且只执行 select 而不是 UNION 以提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM