mysql - 连接这两个表的方法是什么?

标签 mysql sql database

假设我有 2 个表 A 和 B,分别包含开始时间和结束时间的信息。主键是 id 和时间戳的组合。因此,没有 2 个记录可以具有相同的 id 和时间戳

一个

id | start time
1 | 2016-02-06 17:03
1 | 2016-03-09 18:09
2 | 2017-02-07 23:34
3 | 2016-02-07 19:12
3 | 2016-02-07 23:52
...

B

id | end time
1 | 2016-02-06 18:32
1 | 2016-03-09 21:11
2 | 2017-02-08 01:22
3 | 2016-02-07 21:32
3 | 2016-02-08 02:11
...

我的最终结果应该是这样的

id | start time | end time
1 | 2016-02-06 17:03 | 2016-02-06 18:32
1 | 2016-03-09 18:09 | 2016-03-09 21:11
2 | 2017-02-07 23:34 | 2017-02-08 01:22
3 | 2016-02-07 19:12 | 2016-02-07 21:32
3 | 2016-02-07 23:52 | 2016-02-08 02:11
...

显然我不能只加入 ID,因为 id 1 和 3 分别出现两次。我当天也无法加入,因为第三条和第五条记录跨越了 2 个不同的日子。那么有没有办法连接这两个表呢?任何帮助将非常感激!谢谢!

最佳答案

我同意 Barmar 的观点,并鼓励您重新审视您的数据模型。我希望开始时间和结束时间位于同一张表中。

虽然现有的 ID 可能是 user_id 之类的,但如果该 ID 在此表中重复,则应该有一些其他唯一标识符(可能是 transaction_id)来唯一标识每个记录。

关于mysql - 连接这两个表的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58943852/

相关文章:

php - 尝试从下拉列表中获取 EmployeeID 和 EName 以在查询中使用以显示表

mysql - 与变量表的一对多关系

mysql - 我如何编写这个涉及连接的简单 sql 语句?

mysql - 内部 JOIN 返回重复行

php - mysql 和 php FULLTEXT 搜索做得更多,但做得不多?

php - 实时聊天 : saving directly in database or text file?

sql - 我可以用 mysql 5.1 做数据透视吗?

sql - 我如何执行这个简单的 SQL SELECT 语句?

c# - 如何通过同步实现 C# Winforms 数据库应用程序?

java - Hibernate Embedded 类作为 NaturalId