2017-11-19 80 views
0

したがって、達成しようとしている質問は の名前とともに寄付を受け取っていない慈善団体の名前を で表示するクエリを作成します寄付金を受け取った慈善団体の慈善団体の名前と寄付IDの を出力に含めます。null値を指定してもレコードの名前を指定してください

これまでのところ、私が持っている:

/*------------------------ 
use AuntieB 
select name as [Charity] 
, coalesce(donationid,'NULL') as donationid 
from charity c join donation d 
on c.charityid = d.charityid 
------------------------*/ 
Charity    donationid 
-------------------- ----------- 
Helping Hands    1000 
Helping Hands    1001 
Boy Scouts     1002 
Boy Scouts     1003 
Focus Hope     1004 
Focus Hope     1005 
Fresh Start Charity   1006 
St. John Hospital   1007 
Helping Hands    1008 
Helping Hands    1009 
Helping Hands    1010 
Helping Hands    1011 
St. Jude     1012 

(13 rows affected) 

私が持っていることになってるの出力ですが:あなたは左の外側を使用する必要が

name     DonationID 
------------------------------- 
St. Francis Home   NULL 
Salvation Army    NULL 
LA Angels Traders   NULL 
Purple Heart    NULL 
St. Raja Home    NULL 
Mother Wattles    NULL 
Ron McDonald House   NULL 
Helping Hands    1000 
Helping Hands    1001 
Boy Scouts     1002 
Boy Scouts     1003 
Focus Hope     1004 
Focus Hope     1005 
Fresh Start Charity   1006 
St. John Hospital   1007 
Helping Hands    1008 
Helping Hands    1009 
Helping Hands    1010 
Helping Hands    1011 
St. Jude     1012 

答えて

-1

use AuntieB 
select name as [Charity] 
,donationid as donationid 
from charity c left outer join donation d 
on c.charityid = d.charityid 

参加LEFT OUTER JOINキーワードは、左のテーブル(慈善団体)からのすべてのレコードと、右のテーブルからの一致したレコード(寄付)を返します。一致がなければ、右側から結果はNULLになります。

+0

この行を使用すると、次のエラーが発生しました。メッセージ245、レベル16、状態1、行2 varchar値 'NULL'をデータ型intに変換するときに変換に失敗しました。 – CAFE

+0

* Yu *​​は英語の単語ではなく、*外部結合*は存在しません。また、外部結合が必要な理由を説明するために努力する必要があります。ここで知識を提供する努力はゼロです。これは単に低品質のコードダンプです。 –

+0

合体文を削除してdonationidを残しておくと、うまくいくはずです。外部結合が必要な理由は –

関連する問題