2009-07-20 10 views
0

で指定することができ、私は次のクエリ書く:MS-SQLの問題 - 一つだけの式が選択リスト

select 
    id, 
    (select NameEn from [Campaign] where id=CampaignId) as CampaignName,  
    createdDate, 
    (select Name, IdNo, Email, MobileNo from [Members] where id=MemberId) 
from 
    Transactions 

とエラーが発生します
「一つだけの式が選択リストで指定することができますサブクエリはEXISTSで導入されていません。

SQLを正しく書き換えるにはどうすればよいですか?

答えて

2

適切な( | left | ...)結合構文を使用する必要があります。

ような何か:また、あなたの元のコードでは、

select NameEn from [Campaign] where id=CampaignId 

または

select Name,IdNo,Email,MobileNo from [Members] where id=MemberId 

の一つは[Transactions]の行ごとに複数の行を返すことがあります

select 
     t.id, 
     c.NameEn, 
     t.createdDate, 
     m.Name, 
     m.IdNo, 
     m.Email, 
     m.MobileNo 
    from 
     [Transactions] t 
     inner join [Campaign] c on c.id = t.CampaignId 
     inner join [Members] m on m.id = t.MemberId 

これは違法であろう。

+0

また、キャンペーンまたはメンバーの行が存在するかどうかわからない場合は、INNERをLEFTに置き換えてください。 –

関連する問題