如果我有这两个表:
表1
AID1____________FID____________value1
1------------1----------12
7------------2-----------1
8------------1-----------1
表2
AID2____________FID____________value2
7------------1----------3.3
当我执行以下查询时:
Select table1.value1, table2.value2, table1.AID1, table2.AID2
from table1,table2
where table1.FID = 1 or table2.FID = 1
我明白了:
value1_____________Value2_____AID1______AID2
12----------------- 3.3--------1--------7
1------------------3.3---------7--------7
1------------------3.3---------8---------7
但这不是理想的输出,因为有些值应该是NULL,但我得到的是值加倍! 有人可以帮忙吗?
这是我想要的输出: VALUE1_的 _ ____ 值2 的 _ AID1 __ _AID2
12----------------- 3.3--------1--------7
1------------------NULL---------7--------NULL
1------------------NULL---------8---------NULL
答案 0 :(得分:1)
将您的查询更改为
Select table1.value1, table2.value2, table1.AID1, table2.AID2
from table1,table2
where table1.FID = 1 AND table2.FID = 1
答案 1 :(得分:0)
我已经尝试了您描述的方案,并且按预期工作。
<强>表1:强>
AID1 -> int
FID -> int
value1 -> float
<强>表2:强>
AID2 -> int
FID -> int
value2 -> float
<强>结果:强>
value1, value2, AID1, AID2
12,3.3,1,7
1,3.3,7,7
1,3.3,8,7
NULL,3.3,NULL,7
你是如何运作的?
答案 2 :(得分:0)
我想你想要一个工会。
选择table1.value1,table1.AID1, 来自table1 table1.FID = 1
联合
选择table2.value2,table2.AID2 来自table2 table2.FID = 1