2017-09-14 9 views
0

に参加し、私はいくつかの専門家のアドバイス完全外部/ COALESCE

を取得したいと思い、私は2つのテーブル表1と表2

表1

ID DATE   SALEPRICE 

1 05/12/17  $10 
6 04/12/17  $11 
3 03/12/17  $12 
4 02/12/17  $13 

表2

ID DATE   REGULARPRICE 

1 07/12/17  $20 
2 08/12/17  $21 
3 09/12/17  $22 
4 10/12/17  $23 

の検索結果を持っています表

ID SALEDATE   SALEPRICE REGULARPRICE REGULARPRICEDATE 

1 05/12/17   $10  $20   07/12/17 
6 04/12/17   $11   
3 03/12/17   $12  $22   09/12/17 
4 02/12/17   $13  $23   10/12/17 
2        $21   08/12/17 

私は連合が、結果を使用して考え

..私は、私は一列にレコードを取得するテーブルの両方からIDの一致を持って..If表の両方からエントリを必要とします正しくない - 以下は、私の労働組合の結果は

1 05/12/17   $10  null   null 
1 null    null  $20   07/12/17 
6 04/12/17   $11  null   null 
3 null    null  $22   09/12/17 
3 03/12/17   $12  null   null 
4 02/12/17   $13  null    null 
4 null    null  $23   10/12/17 

iは、事前に希望する結果に

感謝を取得するために、完全外部結合を使用し、COALESCEする必要がありますされている

+0

Yeap、完全外部結合があなたのソリューションになります。 –

+0

RDBMSによって異なります。 mySQLはフルアウターをサポートしていませんが、アウターとアウターが2つあります。しかし、合体がなぜ必要なのかは分かりません。またはあなたはあなたが持っているものを続けて、各列とグループをID(あまりエレガントではない)で最大にすることができます – xQbert

+0

どのSQLですか?誰かがあなたに間違ったSQLの解決策を教えてくれれば役に立たない。 – Eric

答えて

0

あなたは可能性がありpoten両方を使用してください。一致するかどうかに関係なく、すべてのレコードを返す完全外部結合。次に同じ列を1つにマージするCOALESCE。 COALESCEを使用するのは、両方の列のデータがまったく同じ場合にのみ有効です。これは、列を結合する場合です。そうでない場合は、完全外部結合を使用します。

関連する問題