Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL从具有不同列号的多个表中进行选择_Mysql_Select - Fatal编程技术网

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

MySQL从具有不同列号的多个表中进行选择,mysql,select,Mysql,Select,我是MySQL新手,所以我真的需要一些帮助来解决我面临的一个问题: 我在同一数据库中有7个表,其中包含一些测试数据: 这7个表有不同的列,但它们都有以下列: 名称 第二个名称 状态 在status中添加了每个学生的当前状态(已接受或已拒绝),我想使用从7个表中选择姓名,第二个姓名,其中status=accepted 我设法从1个表中显示 SELECT name, second_name FROM test1 WHERE status="accepted"; 但我不知道如何显示所有7个。 如

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

  • 名称
  • 第二个名称
  • 状态
status
中添加了每个学生的当前状态(已接受或已拒绝),我想使用从7个表中选择
姓名
第二个姓名
,其中status=accepted

我设法从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

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

IMHO最好将数据库规范化,使所有名称、第二个名称和状态都位于单独的表中,并只执行select而不是UNION,以提高性能。

IMHO最好将数据库规范化,使其具有所有名称,在单独的表中显示第二个名称和状态,并执行唯一的select而不是UNION以提高性能