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