Sql 如何在where子句中对子查询使用别名
我应该如何在子查询中使用别名,以便从Sql 如何在where子句中对子查询使用别名,sql,sql-server,join,c#-4.0,Sql,Sql Server,Join,C# 4.0,我应该如何在子查询中使用别名,以便从子查询中获取列 select R.date, M.bcr from MMS M where M.CampaignID in ( SELECT MR.CampaignID FROM [Snipp_Receipts].[dbo].[MMS_Receipts] MR where MR.CampaignID = '0ab109b5' ) R 注意:活动ID是两个表中的外键 我怎样才能做到这一点?内部联接提供更多记录。子查询有136条记录,我必须在MMS表中单独
子查询中获取列
select R.date, M.bcr from MMS M
where M.CampaignID in
(
SELECT MR.CampaignID
FROM [Snipp_Receipts].[dbo].[MMS_Receipts] MR
where MR.CampaignID = '0ab109b5'
) R
注意:活动ID
是两个表中的外键
我怎样才能做到这一点?
内部联接提供更多记录。子查询
有136条记录,我必须在MMS表
中单独获取与匹配的子查询
记录相对应的其他字段。您不能在(…)
中的中使用别名子查询,并且不能在select子句中引用该表的列。你需要加入才能做到这一点
SELECT
M.*
FROM MMS M
WHERE M.CampaignID IN (
SELECT
MR.CampaignID
FROM [Snipp_Receipts].[dbo].[MMS_Receipts] MR
WHERE MR.CampaignID = '0ab109b5'
) /* NO alias allowed here */
使用内部连接
SELECT
M.*
, MR.date
FROM MMS M
INNER JOIN [Snipp_Receipts].[dbo].[MMS_Receipts] MR ON M.CampaignID = MR.CampaignID
WHERE M.CampaignID = '0ab109b5'
这听起来像是彩信中的单个记录与彩信中的多个记录合并在一起。你能汇总MMS_收据的结果吗?比如说:
SELECT
M.bcr
,max(MR.date) as [date]
FROM MMS M
INNER JOIN [Snipp_Receipts].[dbo].[MMS_Receipts] MR
ON M.CampaignID = MR.CampaignID
WHERE M.CampaignID = '0ab109b5'
GROUP BY M.bcr
我明白。FK上的Join将导致多行,其中根据子查询,输出应仅为77条记录。不知道如何继续。预期的行数告诉我们没有什么特别有用的残酷诚实。您需要提供一个数据样本(两个表)表结构,样本数据和预期结果会很有帮助。您在哪里选择日期?这是否来自于mms\u收据
?根据您的评论,如果收据表中存在多行,它应该返回哪个日期?我们需要更多的信息来帮助这里…嗨。您使用的select语句的引用是什么?它说了什么?它的示例显示了什么?您认为您为什么可以编写它?通过谷歌搜索错误消息,你学到了什么?请阅读并重新研究文本上方的向下箭头鼠标。请阅读。