我是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