2010-12-16 18 views
0

私はこの2つのテーブルがある場合:表2間違ったmysqlの出力

表1

AID1____________FID____________value1 

1------------1----------12 

7------------2-----------1 

8------------1-----------1 

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

どの値が2倍になりますか? – aioobe

+0

テーブルに参加するのを忘れた – David

+0

結果セットが不明です。結果を取得する必要があることを説明します。例えば、 – zerkms

答えて

1

Select table1.value1, table2.value2, table1.AID1, table2.AID2 

from table1,table2 

where table1.FID = 1 AND table2.FID = 1 
+0

これは、OPが期待していたものではなく、デカルト生産を与えます。 – zerkms

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 

0

私はあなたが組合をしたいと思う。 TABLE1 table1.FID = 1

組合

選択table2.value2、table2.AID2 から

選択table1.value1、table1.AID1、 はtable2.FID = 1表2 から