【发布时间】:2020-09-17 19:35:28
【问题描述】:
以下是问题的简单陈述:
假设我们发出了一个 SELECT 查询,它输出了如下内容:
student_id | course_id | status_id | created_at
1 1 1 some_date1
2 1 1 some_date2
6 2 1 some_date3
在同一张表上的另一个 SELECT 查询已经超过了这样的内容:
student_id | course_id | status_id | created_at
1 1 3 some_other_date1
2 1 2 some_other_date2
4 3 2 some_other_date3
所以,这两个表实际上都是临时表。
我想要一个接受两个选择的 SQL 查询(我正在使用 MySQL),只考虑基于 student_id 和 course_id 的两个选择之间的共同点,并输出 student_id、course_id 和每条记录的 created_at 值之间的时间差。
感谢任何帮助。甚至对我不知道的一些 SQL 功能的线索表示赞赏。
【问题讨论】:
-
您的每个查询是否在行集中提供
(student_id, course_id)唯一性? -
@Akina 是的,这听起来是个不错的解决方案。是的,我相信
(student_id, course_id)在每个表中唯一确定一行。