mysql - 对连接语句的结果运行查询
问题描述
我试图弄清楚如何对我在两个表之间执行的连接语句的结果运行查询。基本上,我需要从 More_Info 中获取与 Source_Table 的 ID 在某个时间之间匹配的所有条目,然后计算 PartID = 某些事物的 Number 之间的差异。
考虑以下两个表:
源表
唯一标识 | 时间 |
1 | 051010|
2 | 051545|
3 | 055412|
更多信息
唯一标识 | 零件编号 | 号码 |
1 | 500 | 5 |
1 | 505 | 10 |
1 | 510 | 40 |
2 | 500 | 10 |
2 | 505 | 15 |
2 | 510 | 25 |
4 | 500 | 30 |
6 | 505 | 10 |
所以我知道我可以运行 select * from Source_Table left join More_Info using(UniqueID) ,它将返回:
唯一标识 | 零件编号 | 号码 |
1 | 500 | 5 |
1 | 505 | 10 |
1 | 510 | 40 |
2 | 500 | 10 |
2 | 505 | 15 |
2 | 510 | 25 |
由此,我需要得到 PartID = 500 或 505 的“数字”,并得到差异,结果如下:
唯一标识 | 差异 |
1 | 5 |
2 | 5 |
在解决这个问题时遇到了很大的困难,所以任何帮助都将不胜感激。
解决方案
您可以使用几个子查询,例如:
select t1.UniqueId, t2.NUmber - t1.Number from (
select * from Source_Table left join More_Info using(UniqueID)
) t1
INNER JOIN (
select * from Source_Table left join More_Info using(UniqueID)
) t2 on t1.UniqueID = t2.UniqueID and t1.PartID = 500 and t2.partId = 505
推荐阅读
- vba - 如果它们是某种颜色,Excel将所有值从一个主工作表复制到其他各种工作表
- plot - Racket:将剩余参数映射到另一个过程
- python - ModuleNotFoundError:没有名为“object_detection”的模块
- python - 无法在 python 中使用 opencv 读取图像
- html - 将图像大小调整为包含文本的 div
- docker - 在 Elasticbeanstalk Docker 环境中提供 Django 静态文件
- c++ - 当“运算符”函数根据类而不是实际运算符定义时,它们如何工作?
- r - R foreach 并行和包变量
- javascript - 如何在循环的while或foreach中制作动态的其他选项输入框
- javascript - 在提交事件函数调用上使用“return”时引发错误