【发布时间】:2021-11-17 10:10:42
【问题描述】:
表 A 的序列号是随机生成的。 然后表 B 会根据表 A 的序列号和类别来生成它的声音。
我试过这个命令,但失败了。
SELECT A.timestamp, B.timestamp, B.SerialID, A.Category, B.Sound
FROM A
JOIN B
ON B.timestamp > A.timestamp
AND A.SerialID = B.SerialID
ORDER BY B.timestamp
表 A
| Timestamp | SerialID | Category |
|---|---|---|
| 1 | 3 | Cat |
| 2 | 5 | Dog |
| 10 | 44 | Cat |
| 13 | 5 | Cat |
| 15 | 3 | Dog |
表 B
| Timestamp | SerialID | Sound |
|---|---|---|
| 3 | 3 | Meow |
| 4 | 5 | Bark |
| 11 | 44 | Meow |
| 14 | 5 | Meow |
| 16 | 3 | Bark |
Desire表:表B的第一个匹配表A和B的序列id。Timestamp大于A.Timestamp
| A.Timestamp | B.Timestamp | Serial ID | Category | Sound |
|---|---|---|---|---|
| 1 | 3 | 3 | Cat | Meow |
| 2 | 4 | 5 | Dog | Bark |
| 10 | 11 | 44 | Cat | Meow |
| 13 | 14 | 5 | Cat | Meow |
| 15 | 16 | 3 | Dog | Bark |
【问题讨论】:
-
你的 MySQL 版本是多少?最简单的解决方案可能是带有限制子句的横向连接。自 MySQL 8.0.14 以来,横向连接就已成为特色。
-
抱歉添加错误信息,是SQLite 3.12.2