我有一个这样设置的 MySQL 比赛表。
|------------------------|
|bouts |
|------------------------|
|boutID |
|recording_athlete |
|boutdate (timestamp) |
|opponent |
|recording_athlete_points|
|------------------------|
两个人之间的每次实际会面都会在表格中记录两次,具有唯一的 boutID 和 boutdate(反映实际进入的时刻,但在另一个 5 分钟内),其中一个记录的运动员是另一个的对手,反之亦然。这两个记录不一定是连续的。每天有两个参与者的额外会议,以较长的时间间隔分开:我们正在寻找时间戳和 ID 号最接近的两个(假设它们是属于一起的两个)。
我正在尝试 SELECT 一起属于一行的记录(并意识到并希望它会被执行两次),以便它将输出匹配的行,如下所示:
boutID|recording_athlete|boutdate|opponent|recording_athlete_points|boutID_b|boutdate_b|opponent_points
01|John|2012-05-10 20:33:04|Jane|15|04|2012-05-10 20:36:12|10
04|Jane|2012-05-10 20:36:12|John|10|01|2012-05-10 20:33:04|15
这是我到目前为止所拥有的,以及我认为我需要去的地方,但只是不知道该使用什么。某种区间语句?还是我需要一个完全不同的结构?
SELECT
A.`boutID`,
A.`recording_athlete`,
A.`boutDate`,
A.`opponent`,
A.`recording_athlete_points`,
B.`boutID` as `boutID_b`,
B.`boutDate` as `boutdate_b`,
B.`recording_athlete_points`as `opponent_points`
FROM bouts A
INNER JOIN bouts B on(A.`fullName` = B.`opponent` AND ????? )
ORDER by A.`boutDate`