Проблема MS-SQL - в списке выбора можно указать только одно выражение - PullRequest
0 голосов
/ 20 июля 2009

Я пишу следующий запрос:

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, чтобы он был корректным?

1 Ответ

2 голосов
/ 20 июля 2009

Вам необходимо использовать правильный (inner | left | ...) синтаксис соединения.

Что-то вроде:

  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

Кроме того, в вашем исходном коде, один из

  select NameEn from [Campaign] where id=CampaignId

или

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

может возвращать более одной строки для каждой строки [Transactions], что было бы недопустимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...