如何相交5 SQL查询不属于同一个表,并有数百万的数据作为输出每个查询?
我想找出所有五个查询输出中存在的数据。
您可以交叉它们,正如您所说的(所有语句必须具有相同数量的列,并且它们必须在数据类型上匹配),例如
SQL> select empno, ename from emp
2 intersect
3 select deptno, loc from dept;
no rows selected
SQL>
或者,您可以将每个查询用作CTE,然后将它们连接起来(结果将返回匹配的行):
SQL> with
2 q1 (valn, valc) as
3 (select empno, ename from emp),
4 q2 (valn, valc) as
5 (select deptno, loc from dept)
6 --
7 select a.valn
8 from q1 a join q2 b on a.valn = b.valn and a.valc = b.valc;
no rows selected
SQL>
百万行?我想可能需要一些时间才能得到结果。