Mysql从两个表中选择进行比较
我已经搜索了其他相关的线程,但我不认为我在寻找联合或外部连接。我想做的理论上很简单。我在两个不同的数据库中有两个表,它们的数据大致相同。我试着把它们放在一起,这样我们可以比较它们。字段名称不同,但数据非常相似 想象一下这样的情景:Mysql从两个表中选择进行比较,mysql,sql,Mysql,Sql,我已经搜索了其他相关的线程,但我不认为我在寻找联合或外部连接。我想做的理论上很简单。我在两个不同的数据库中有两个表,它们的数据大致相同。我试着把它们放在一起,这样我们可以比较它们。字段名称不同,但数据非常相似 想象一下这样的情景: person_id first last department +----------+----------+---------------+--------------+ | foo_1|Bob |Bobers
person_id first last department
+----------+----------+---------------+--------------+
| foo_1|Bob |Boberson | Accounting |
| foo_2|Steven |McStevens | Sales |
| foo_3|Jane |Janeston | Support |
| bar_1|Bob |Boberson | Accounting |
| bar_2|Doug |Dugger | IT |
| bar_3|Jane |Janeston | Support |
+----------+----------+---------------+--------------+
表'foo':
id first_name last_name dept_name
+---+----------+---------------+-------------+
| 1|Bob |Boberson | Accounting |
| 2|Steven |McStevens | Sales |
| 3|Jane |Janeston | Support |
+---+----------+---------------+-------------+
表'bar':
person_id first last department_id
+----------+----------+---------------+--------------+
| 1|Bob |Boberson | 2|
| 2|Doug |Dugger | 5|
| 3|Jane |Janeston | 3|
+----------+----------+---------------+--------------+
我试图以这样的方式结束:
person_id first last department
+----------+----------+---------------+--------------+
| foo_1|Bob |Boberson | Accounting |
| foo_2|Steven |McStevens | Sales |
| foo_3|Jane |Janeston | Support |
| bar_1|Bob |Boberson | Accounting |
| bar_2|Doug |Dugger | IT |
| bar_3|Jane |Janeston | Support |
+----------+----------+---------------+--------------+
通过使用“as”更改列名,使用concat更改各个字段,并进行适当的联接以填充“department”字段,很容易使两个表彼此相似。但是,我不能做一个“加入”并保持这种逻辑。我真的需要为每个表执行select语句。这里可能有一个简单的解决方案,但我没有看到
编辑:你们说得对,这是工会的标准案例。我在想,出于某种原因,工会总是添加列。谢谢。我认为您可以使用
UNION
如果您不想删除任何重复的名称,那么这将在一个查询中从两个表中获取数据,您可以将表名作为查询的一部分,在需要时为person\u id添加前缀
这需要测试/改进,但:
(SELECT foo AS table, f.id AS person_id, f.first_name AS first, f.last_name AS last, f.dept_name FROM foo AS f)
UNION
(SELECT bar AS table, b.person_id, b.first, b.last, FROM bar AS b)
这看起来就像一个联盟
看一看,我没有费心查找部门ID,但这应该会给你一个基本的想法。那么你不想加入/修剪每个表中的重复项?那么你想要一个
联盟
?嗯,你可能是对的。我在想一个联盟会创造更多的专栏。我可能没有做作业。