mysql - 在 SQL 中使用带有 Count 函数的减法常量
问题描述
假设有一个供应商、目录和零件的模式,我们正试图找出哪些供应商提供除一个以外的所有零件。
这是正确的查询吗?我不确定只是因为-1
在最后一个 select 语句的末尾,我不确定这是否有效。
SELECT S.sid
FROM SUPPLIER S, CATALOGUE C
WHERE S.sid = C.sid
GROUP BY S.sid
HAVING COUNT(*) = ((SELECT COUNT(*) FROM PARTS) - 1))
解决方案
您可以尝试以下一个 withdistinct
子句:
SELECT S.sid
FROM SUPPLIER S
JOIN CATALOGUE C ON S.sid = C.sid
JOIN PARTS P ON P.id = C.parts_id
GROUP BY S.sid
HAVING COUNT(distinct C.parts_id) = COUNT(distinct P.parts_id) - 1
推荐阅读
- go - golang中基于环境的数据库细节配置
- jquery - jquery期待点网核心升级到2.1后格式为“yyyy-MM-ddThh:mm”
- android - 在 Surface View 上调用 OnTouchEvent 时应用程序没有响应
- android - Android Studio v 3.1.4 中的小部件不会出现在设计模式中
- ajax - 通过ajax重新加载后,没有数据
- java - 我可以在 Selenium 中将登录设置为 @before 进程吗?
- r - 为什么 R 中不同的随机森林实现会产生不同的结果?
- python - Spacy is_stop 不识别停用词?
- javascript - After Effects 脚本按钮元素 onclick
- sql - 将旧版 SQL 转换为标准 SQL(加入每个和逗号)