MySQL从具有不同列号的多个表中进行选择

时间:2012-04-08 14:03:32

标签: mysql select

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

  
      
  • name
  •   
  • second_name
  •   
  • status
  •   

status中添加了每个学生的当前状态(已接受或已拒绝),我想使用从7个表中选择namesecond_name where status = accepted

我设法从1张表中显示

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

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

2 个答案:

答案 0 :(得分:2)

如果您不介意使用多个已接受测试的重复学生姓名,您可以尝试使用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

答案 1 :(得分:2)

恕我直言,最好将数据库规范化,使所有名称,第二名和状态都在单独的表中,并且只做选择而不是UNION来提高性能。