Я новичок в 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
смотрит и получает предыдущий race_id
за тот же runner_id
.
Для иллюстрации; Что бы я хотел сделать, скажем, что бегун принял участие в 6 гонках из 10 гонок в этом году, в ряду, касающемся его 5-й гонки, я хочу знать гонку 4-й гонки.
Я думаю, я мог бы создать новый стол для каждого бегуна, который был рекордным количеством гонок, в которых они принимали участие, но это растягивалось бы до сотен таблиц ... должен быть лучший способ.
Возможно ли это?
Если вы не хотите беспокоиться о том, чтобы всегда исправлять свои данные, придумайте гениальный запрос – Drew
Таблицы SQL представляют собой * неупорядоченные * наборы. Нет такой вещи, как предыдущая строка, если у вас нет столбца, содержащего информацию для заказа. Примерами являются числовое значение расы, идентификатор автоматического увеличения или дата создания. –
проблема, о которой упоминает @GordonLinoff, в частности: представить в вашей таблице трех столбцов, как вы ее здесь представляете, вы вставляете новую строку '10 J -'. что приведет к аннулированию вашего текущего состояния. – hoijui