mysql - 如何使用MYSQL返回与用户关联的所有对象也都在另一个表中
问题描述
我正在做一个像 LIME 这样的电动滑板车项目(学校项目),我需要返回某个查询的结果(见下文)
我正在使用 MYSQL 5.7.24,并且我已经尝试了一百个没有很好匹配结果的查询。我有 2 个用于此查询的表:包含 userID、scooterID 和其他行的 Trips 表。重新加载包含 userID、scooterID 和其他行的表。
我的查询应该返回使用了他们加载的所有滑板车的用户列表。
实际的问题是“已经使用了所有的踏板车......”。
这是不工作查询的示例:
SELECT r.userID
FROM reload r
LEFT JOIN trips v
ON r.useID= v.`userID` AND r.scooterID= v.scooterID WHERE r.`scooterID ` IS NOT NULL
GROUP BY r.userID
例子:
如果用户 X 使用滑板车 A、B 并重新加载滑板车 A、B。我的查询应该返回用户 X 的用户 ID。
现在,如果用户 X 使用滑板车 A、B 并重新加载滑板车 A、B、C。我的查询不应该返回用户 X 的用户 ID。
解决方案
而不是一个WHERE
子句,你需要一个HAVING
子句:
SELECT r.userID
FROM reload r LEFT JOIN trips v
ON r.userID= v.userID AND r.scooterID = v.scooterID
GROUP BY r.userID
HAVING SUM(v.scooterID IS NULL) = 0
如果anull
列中有值,则条件将评估为并且该用户将被排除在结果之外。请参阅演示。v.scooterID
userID
v.scooterID IS NULL
1
推荐阅读
- spring-boot - 不活动超时后自动关闭 Spring Boot
- apache-spark - 无法通过 SSMS 访问 Azure Synapse Spark 表
- ios - iOS - AWS Cognito 使用 JavaScript 获取访问密钥、秘密密钥为空
- java - 移动视觉未检测到二维码
- django - django 信号不保存 m2m 模型字段
- ios - SwiftUI 将几何阅读器与 ForEach 结合使用
- sql-server - 无法在具有唯一索引的对象中插入重复的键行,但这样的记录不存在
- c++ - 最终游戏引擎的纤维模板
- python - 从字典追加到列表?
- java - 为什么 maven 无法找到添加的依赖项(某些 Enforcer 规则已失败)