MS-SQL问题-在选择列表中只能指定一个表达式
我编写以下查询:MS-SQL问题-在选择列表中只能指定一个表达式,sql,sql-server,tsql,Sql,Sql Server,Tsql,我编写以下查询: 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引入的,则只能在选择列表中
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以使其正确?您需要使用正确的(
内部
|左侧
|…)连接语法
比如:
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
或
对于
[Transactions]
的每一行,可能返回多行,这将是非法的。此外,如果您不确定活动行或成员行是否存在,请将inner替换为left。
select Name,IdNo,Email,MobileNo from [Members] where id=MemberId