4

すでに多くの行がある単純なテーブルがあります。

id  grade  ...
1    1     ...
2    2     ...
3    2     ...
4    1     ...
5    1     ...

ここで、そのグレード"relative_order"の順序である列を追加したいと思います。したがって、テーブルは次のようになります。

id  grade  ...  relative_order
1    1     ...       1
2    2     ...       1
3    2     ...       2
4    1     ...       2
5    1     ...       3

列を追加した後、最初にすべての relative_order が 0 になります。update構文を使用して relative_order 列を埋めるにはどうすればよいですか?

内部結合を使用しようとしましたが、失敗しました:

UPDATE table AS i
INNER JOIN(
  SELECT max(relative_order) as mOrder,grade
  FROM table 
  GROUP BY grade
) AS j
ON i.grade = j.grade
SET i.relative_order = j.mOrder + 1
4

1 に答える 1