我是MySQL的新手,我遇到了以下问题;MySQL - 引用回前一行来添加计算列
我们称之为表runners_table
+---------+-----------+
| race_id | runner_id |
+---------+-----------+
| 10 | A |
| 10 | E |
| 10 | V |
| 23 | G |
| 23 | J |
| 23 | A |
| 67 | E |
| 67 | G |
| 67 | X |
+---------+-----------+
而且我想添加一个新列这样的;
+---------+-----------+--------------+
| race_id | runner_id | prev_race_id |
+---------+-----------+--------------+
| 10 | A | - |
| 10 | E | - |
| 10 | V | - |
| 23 | G | - |
| 23 | J | - |
| 23 | A | 10 |
| 67 | E | 10 |
| 67 | G | 23 |
| 67 | X | - |
+---------+-----------+--------------+
凡prev_race_id
回顾,并得到了相同的runner_id
以前race_id
。
举例说明; 我想要做的是,说一名参赛选手参加了当年10场比赛中的6场比赛,在第五场比赛中我想知道他的第四场比赛的race_id。
我想我可以为每个参赛者的记录都制作一张新表,但这可能会延伸到数百张桌子......必须有更好的方式。
可以做到这一点吗?
除非你想担心总是修补你的数据,想出一个巧妙的查询 – Drew
SQL表示*无序*集。除非您有包含订购信息的列,否则没有上一行的内容。示例是比赛的数值,自动增量ID或创建日期。 –
@GordonLinoff提到的问题,具体是:想象你在3列表中,因为你在这里呈现它,你插入一个新的行'10 J-'。这会使您的当前状态无效。 – hoijui