【发布时间】:2017-06-23 07:51:27
【问题描述】:
我有一个查询,它是通过连接两个选择语句形成的,它们将结果作为列 A、B、C、A、B、C 返回。这里 A,B,C 是相同但值不同的列的名称,因为它是来自两个不同查询的结果集。现在我想为 A、B、C 设置两行,而不是在一行中为两个表显示数据。像这样:-
现在:-
A B C A B C
Values X1 X2 x3 Y1 Y2 Y3
必填:-
A B C
Value from table 1 X1 X2 x3
Value from Table 2 Y1 Y2 Y3
现在我的条件是我想要替代结果,即表 1 中的一行,然后表 2 中的一行,然后表 1 和表 2 中的行,依此类推......
这是一些示例代码。
Select * from
( Select x,y,z from table1 ) A
join ( Select x,y,z from table1 ) B on A.x = B.x and A.y = B.z and A.z = B.y
【问题讨论】:
-
您的查询在哪里
-
你想使用 UNION ALL 而不是 join
-
@denny - 可能,请查看示例代码。 Select * from ( Select x,y,z from table1 ) A join ( Select x,y,z from table1 ) B on Ax = Bx and Ay = Bz and Az = By 代码将从查询返回 x,y,z 列A 然后是查询 B 中的 x,y,z 列
-
好吧误会
-
@GurV - No Union All 不会满足我的目的,因为我想根据表 1 中的值对表 2 使用 where 子句,据我所知,我们不能在 Union 之后使用 where 子句。如果我要去哪里错了,请提出建议。
标签: mysql database join pivot-table union