错误的mysql输出

时间:2010-12-16 14:57:37

标签: mysql

如果我有这两个表:

表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

3 个答案:

答案 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