这里的事情: 我有两张桌子。一个包含客户与网站,另一个表包含客户的选项网站。
我想知道2表中是否有重复的网站
例如:
tableA:
cust_id cust_website
1 aaaa@aaa.a
2 bbbb@bbb.b
3 cccc@ccc.c
4 aaaa@aaa.a
5 dddd@ddd.d
...
tableB的
cust_id cust_optionnalWebsite
3 uuuu@uuu.u
4 dddd@ddd.d
...
我想在tableA,表B和tableAB中拥有所有重复的网站。好吧,都是顽固的..
我开始这样做:
SELECT cust_website FROM tableA WHERE cust_website IN (SELECT cust_optionnalWebsite FROM tableB UNION SELECT cust_website FROM tableA) GROUP BY cust_website HAVING COUNT(cust_website) > 1
但是UNION声明需要太多时间,显然,它缺少一些东西......
我也尝试用OR语句替换UNION,但是如果tableA和tableB中有相同的网站,它不需要两个结果,只有一个。
我想要的输出是
网站
aaaa@aaa.a
dddd@ddd.d
请帮忙,
谢谢
编辑:
最后这个有效:
SELECT website FROM ( SELECT cust_optionnalWebsite as website FROM tableB UNION ALL SELECT cust_website as website FROM tableA ) GROUP BY website HAVING(website)>1;
答案 0 :(得分:1)
SQL merge 2导致一个:
1.) use UNION ALL
有很多原因导致您在执行查询时变慢。
1.) Machine specs.
2.) Database Structure.
3.) Indexes.
4.) Database Software it self.