我使用MySQL,我有2个Query Select SQL,第一个Query将返回结果A,第二个将返回结果B,所以我想要结合两个查询结果,结果A的ID列和结果B的value_num成为标准列,我不认为使用subselect,因为我已经尝试过,在查询过程中需要花费很长时间,我该怎么做?
结果A:
+------------+--------------+
+ ID + Name +
+------------+--------------+
+ 1 + Steve +
+ 2 + Mile +
+ 3 + Santo +
+ 4 + Del Piero +
+ 5 + Jack +
============================+
结果B:
+------------+--------------+
+ Valuenum + value +
+------------+--------------+
+ 1 + 20 +
+ 2 + 30 +
+ 6 + 44 +
+ 7 + 55 +
============================+
结合结果一个丹结果B,下面是我期望的输出。
+------------+--------------+----------+
+ID_valuenum + Name + value +
+------------+--------------+----------+
+ 1 + Steve + 20 +
+ 2 + Mile + 30 +
+ 3 + Santo + Null +
+ 4 + Del Piero + Null +
+ 5 + Jack + Null +
+ 6 + Null + 44 +
+ 7 + Null + 55 +
============================+==========+
由于
答案 0 :(得分:2)
select
ta.Id as ID_Valuenume
,ta.name
,tb.value
from TableA ta
left join TableB tb on ta.ID=tb.valuenum
union
select
tb.valuenum
,ta.name
,tb.value
from TableB tb
left join TableA ta on ta.ID=tb.valuenum
答案 1 :(得分:0)
您必须使用UNION:
select ra.ID as ID_valuenum,
ra.Name,rb.value from ResultA ra left join ResultB rb on ra.ID=rb.Valuenum
UNION
select rb.Valuenum,null as Name,rb.value from ResultB where rb.Valuenum not in
(select ID from ResultB)
- >在第一部分中,您必须使用左连接,以便为您提供数据
+------------+--------------+----------+
+ID_valuenum + Name + value +
+------------+--------------+----------+
+ 1 + Steve + 20 +
+ 2 + Mile + 30 +
+ 3 + Santo + Null +
+ 4 + Del Piero + Null +
+ 5 + Jack + Null +
- >在第二部分中,不需要使用任何连接,然后它将提供数据: -
+ 6 + Null + 44 +
+ 7 + Null + 55 +