如何在MySQL中结合同一个表?

时间:2017-08-09 01:40:11

标签: mysql sql union

现在我有以下sql:

SELECT MAX(a), MIN(a)
FROM t1 join t2 join t3
UNION ALL 
SELECT MAX(b), MIN(b)
FROM t1 join t2 join t3
UNION ALL 
SELECT MAX(c), MIN(c)
FROM t1 join t2 join t3
UNION ALL 
SELECT MAX(d), MIN(d)
FROM t1 join t2 join t3

虽然表t1,t2,t3都很大,但加入它们非常慢。

如何在此查询中仅加入一次?别名表或创建临时表(查询范围)?

  1. 我不想将它们转换为1行4列。
  2. 我试图创建视图。它不起作用。
  3. 提前致谢!

1 个答案:

答案 0 :(得分:0)

在SQL Server中,您可以使用横向连接:

SELECT v.x
FROM t1 join
     t2
     on . . . join
     t3
     on . . . cross apply
     (values (a), (b), (c), (d)) v(x);