首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql -微调有

Mysql -微调有
EN

Stack Overflow用户
提问于 2013-02-07 20:15:06
回答 1查看 51关注 0票数 1

有没有人知道如何解决这个问题?

有一个包含客户的表和一个包含许可证的表。每个客户可以有多个许可证在不同的时间过期,有些许可证已经过期,有些许可证还没有过期。如果要选择至少具有一个有效许可证的所有客户,请执行以下操作:

代码语言:javascript
复制
SELECT * FROM License
LEFT JOIN Customer USING (customer_id)
GROUP BY Customer.customer_id
HAVING License.expiry > NOW()

但是,如何才能获得只有过期许可证的客户呢?如果我执行"HAVING License.expiry < NOW()“,它会找到许可证过期的客户,但不会排除同时拥有有效许可证的客户。我需要选择只有许可证过期的客户。

“没有”可以解决问题,但没有这样的事情...

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 20:20:40

尝试这个查询-

代码语言:javascript
复制
SELECT * FROM License
  LEFT JOIN Customer USING (customer_id)
GROUP BY
  Customer.customer_id
HAVING
  COUNT(*) > 0 AND COUNT(*) = COUNT(IF(License.expiry > NOW(), 1, NULL))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14750870

复制
相关文章

相似问题

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