首页 > 解决方案 > 对连接语句的结果运行查询

问题描述

我试图弄清楚如何对我在两个表之间执行的连接语句的结果运行查询。基本上,我需要从 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       |

在解决这个问题时遇到了很大的困难,所以任何帮助都将不胜感激。

标签: mysql

解决方案


您可以使用几个子查询,例如:

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 

推荐阅读