在一列上的同一查询中组合2个select语句

时间:2015-03-24 20:35:20

标签: sql

我试图将2个sql结果集合并为1.我不能在1中选择它们,因为性能是个大问题。所以我想要做的就是运行它们并将结果组合在主键上 - 所有这些都在一个查询中。

例如。

select a,b,c,d from tablea;
select d,e,f,g from tableb;

如何在查询本身中组合结果。选择再次需要分开。

输出:

a,b,c,d,e,f,g

1 个答案:

答案 0 :(得分:3)

只需加入专栏D

select a, b, c, A.d, e, f, g 
from tablea A
INNER JOIN tableb B
  ON A.d = B.d

可以使用子查询:

SELECT a, b, c, A.d, e, f, g 
FROM
    (select a,b,c,d from tablea) A
INNER JOIN
    (select d,e,f,g from tableb) B
  ON A.d = B.d

或CTE(使用子查询的另一种方式):

WITH A AS
(
    select a,b,c,d from tablea;
),
B AS 
(
    select d,e,f,g from tableb;
)
SELECT a, b, c, A.d, e, f, g 
FROM A
INNER JOIN B
  ON A.d = B.d
  

我的第二个选择是在几行上运行平均值并返回该键的数字。当我加入那张桌子时非常沉重。

好的,改变了这种情况。子查询或CTE可能是您最好的选择。