首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储过程使用2个表获取计数

存储过程使用2个表获取计数
EN

Stack Overflow用户
提问于 2010-11-12 22:14:01
回答 2查看 284关注 0票数 0

我第一次尝试编写一个复杂的存储过程。我的目标是从2个表中获取具有某些条件的计数。

考虑Merchant表和Email表。电子邮件表保存了商家发送的电子邮件邀请。商家表有所有的商家信息和电子邮件ID。我的目标是通过检查商家发送的电子邮件邀请函是否已经注册,来获得商家表中的EmailID的数量。

我已经试着把这个问题弄清楚了。希望我说清楚了。

提前谢谢..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-12 22:19:13

为什么是存储过程?这听起来像是可以在一个SQL查询中完成。

让我们看看我是否正确理解了您的问题:商家邀请其他人也成为商家,而您想要一个列表,其中包含每个商家接受的邀请数量?

一些类似的东西:

代码语言:javascript
运行
复制
select MerchantName, count(1)
from Merchants, Emails
where Merchants.Id = Emails.Id
and Emails.SignedUp = 'YES!'
group by MerchantName;
票数 1
EN

Stack Overflow用户

发布于 2010-11-12 22:20:43

听起来您所描述的模式中有一些混淆。基于我认为你正在尝试做的事情,我建议你有一个商家表,一个电子邮件表和一个MerchantEmail表,它将商家链接到发送的电子邮件邀请。

否则,具有电子邮件ID的Merchant表的显示方式是多对一关系,因此多个Merchants可以是电子邮件的收件人。在这种情况下,注册标志将出现在Merchants表中,而不是Email表中。

代码语言:javascript
运行
复制
CREATE PROCEDURE GetMerchantsSignedUp
@EmailId INT
AS
SELECT COUNT(*) AS MerchantSignedUp
FROM Merchant, Email
WHERE Merchant.EmailId = Email.Id
AND Merchant.SignedUp = 1
AND Email.Id = @EmailId

  • 请注意,上面有一些冗余,这表明您甚至不需要在查询中包括电子邮件表。在这里,它仅用于指示外键关系。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4165490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档