我正在为完成学士学位所需的课程创建一个数据库。我的数据库中有2个表," gereport"和" majorreport"。两个表都有相同的信息,但我希望它们分开。我的问题是,我试图概述我仍然需要采用的所有类,包括ge类和主类。我试图做以下事情:
mysql> SELECT gereport.*, majorreport.* FROM gereport, majorreport;
这是我得到的结果:
+-------+-----------+-------+------+-------+---------+-------+------+
| area | class | units | done | area | class | units | done |
+-------+-----------+-------+------+-------+---------+-------+------+
| A1 | TRANSFER | 2.66 | yes | LD | CS 46A | 3 | yes |
| A1 | TRANSFER | 2.66 | yes | LD | CS 46B | 3 | yes |
| A1 | TRANSFER | 2.66 | yes | LD | CS 46A | 6 | yes |
| A1 | TRANSFER | 2.66 | yes | LD | CS 49J | 3 | yes |
快进,我得到一份清单: 464行(0.00秒)
它应该总共只有45行。我对mysql很新。是否有任何命令可用于使每个表中的行显示在一个表中?我不能拥有主键,因为有些类可能在几个区域,有些区域有几个类。
简而言之,我想我想要的是桌子加入向下,而不是横向加入。
答案 0 :(得分:0)
你想要一个工会:
来自MySQL文档(https://dev.mysql.com/doc/refman/5.0/en/union.html)
UNION用于组合多个SELECT语句的结果 到一个结果集。
select * from gereport
UNION
select * from majorreport;
请注意,在我看来,明确关于列是一个好习惯,以便明确列“正确堆叠”。所以我写这样的查询:
select area, class, units, done from gereport
UNION
select area, class, units, done from majorreport;
答案 1 :(得分:0)
我相信您正在寻找UNION
。
SELECT * FROM gereport
UNION
SELECT * FROM majorreport;
请注意,此查询未进行优化。如果您正在运行一个不断进行此查询的大型数据库,我会添加一些索引并重新组织数据库,以便您可以进行一些效率更高的连接。