1

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

  • name.
  • second_name.
  • status.

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

我设法从 1 个表中显示

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

但是我不知道如何从所有 7 中显示。如果有人能给我一个提示,这对我来说将是一个真正的帮助。

4

2 回答 2

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
于 2012-04-08T14:07:28.743 回答
2

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

于 2012-04-08T14:45:04.590 回答