Sql 查询2个表中的所有结果
我有一个sql问题。它应该很简单,但我想不出来。 我有两张桌子:Sql 查询2个表中的所有结果,sql,Sql,我有一个sql问题。它应该很简单,但我想不出来。 我有两张桌子: **customer1 -** id name 1 aaa 2 bbb 3 ccc 4 ddd **customer2**- id name 1 aaa 2 bbb 5 eee 6 fff 我需要让两张桌子上的所有顾客都来。 我需要以这样一种方式进行查询:如果一个客户同时出现在两个表中,我将在结果中看到他两次(
**customer1 -**
id name
1 aaa
2 bbb
3 ccc
4 ddd
**customer2**-
id name
1 aaa
2 bbb
5 eee
6 fff
我需要让两张桌子上的所有顾客都来。
我需要以这样一种方式进行查询:如果一个客户同时出现在两个表中,我将在结果中看到他两次(例如aaa、bbb),而所有其他的结果都只有一次
非常感谢。请注意UNION和UNION ALL,第一个不会重复,第二个查询结果甚至会重复
select id, name from customer1
union all
select id, name from customer2
让我们来谈谈性能:
一个联合是高度优化且非常快速的,除非一个查询比另一个查询早完成,并且您必须等待获得整个结果集
当您不介意重复时,UNION ALL会更快。请注意UNION和UNION ALL,第一个不会重复,第二个查询结果甚至会重复 让我们来谈谈性能: 一个联合是高度优化且非常快速的,除非一个查询比另一个查询早完成,并且您必须等待获得整个结果集
当你不介意重复的时候,UNION ALL会更快。我会把这个作为一个评论放到:Raghavendra Kedlaya post;但它不让我这么做 我想知道使用union all时数据从何而来
SELECT id, name, 'Customer1' as src
FROM customer1
UNION ALL
SELECT id, name, 'Customer2' as src
FROM customer2
我会把这作为一个评论:Raghavendra Kedlaya post;但它不让我这么做 我想知道使用union all时数据从何而来
SELECT id, name, 'Customer1' as src
FROM customer1
UNION ALL
SELECT id, name, 'Customer2' as src
FROM customer2
你能分享一下这个示例的结果吗?你使用的是什么数据库管理系统,sql server,oracle,mysql…?-标记您的问题。请向我们展示您到目前为止所做的尝试。您能分享您期望从这个示例中获得的结果吗?您使用的是什么dbms,sql server,oracle,mysql…?-标记您的问题。请向我们展示您迄今为止所做的尝试。通过此查询,我不会得到两次我想要的结果,并且我只会将每一行作为一个并集得到一次。非常奇怪的
union all
应该会返回两个表中的所有数据。因此,如果customer1有10条记录,customer2有5条记录,那么最终将有15条记录包含所需的副本!试过了,对我有用。得到了8个重复的结果。使用mysql 5.7这个查询,我不会得到两次我想要的结果,我只得到一次每一行的联合。非常奇怪的union all
应该返回两个表中的所有数据。因此,如果customer1有10条记录,customer2有5条记录,那么最终将有15条记录包含所需的副本!试过了,对我有用。得到了8个重复的结果。使用mysql 5.7谢谢,你知道在mysql中是否也可以使用UNIONALL吗?mysql有这两个功能,几乎所有的RDBMS引擎都应该有。这就是@Raghavendrakedlaya在他们的示例中使用的内容。链接到mysql union all:奇怪,我在phpmyadmin中mysql中的“all”字旁边得到了一个红色标记。我想知道,我没有得到重复的值。谢谢,你知道在mysql中是否也可以实现union all吗?mysql有这两个,几乎所有的RDBMS引擎都应该有。这就是@Raghavendrakedlaya在他们的示例中使用的内容。链接到mysql union all:奇怪,我在phpmyadmin中mysql中的“all”字旁边得到了一个红色标记。我没有得到我想要的重复值