这个可以一句SQL搞定吗?

xugang96 2015-05-07 09:29:42
有张表A,里面有几条记录
----------------------------------------
活动编号 活动名称
------------------------------------------
1 2013年3月活动
2 2013年4月活动
3 2013年5月活动
--------------------------------------------
另外有张表B 里面的记录是这样的
-----------------------------------------
套餐名称 活动编号 活动名称
--------------------------------------------------
A套餐 1 2013年3月活动
A套餐 2 2013年4月活动
B套餐 3 2013年5月活动
B套餐 5 2014年6月活动

现在想得到套餐名称,条件是套餐所带的活动要能同时在A表中存在;
所以上述只能是A套餐满足,B套餐就不行,因为5活动不在A表中,这个SQL语句如何写了? A表的记录是动态查询出来的。
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcqm8888 2016-02-28
  • 打赏
  • 举报
回复
依据搞不定,两句不行吗?
-小蕾- 2015-05-07
  • 打赏
  • 举报
回复
select 套餐名称 from B,A where B.活动编号=A.活动编号
xugang96 2015-05-07
  • 打赏
  • 举报
回复
引用 1 楼 Viserver926 的回复:
Select 套餐名称 FROM B Where 活动编号 IN (SELECT 活动编号 FROM A )
你这样是部分满足,会查出B套餐的,我要的是同时满足
还在加载中灬 2015-05-07
  • 打赏
  • 举报
回复
SELECT 套餐名称
FROM B T1
WHERE NOT EXISTS(SELECT 1 FROM B T2 WHERE T1.套餐名称=T2.套餐名称 AND
	  NOT EXISTS(SELECT 1 FROM A T3 WHERE T3.活动编号=T2.活动编号))
GROUP BY 套餐名称
Viserver926 2015-05-07
  • 打赏
  • 举报
回复
Select 套餐名称 FROM B Where 活动编号 IN (SELECT 活动编号 FROM A )

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧