Groupというテーブルとというテーブルがあるという問題に直面していますEntry。Groupテーブルには主キーがありますId。Entryテーブルには主キー、テーブルの呼び出されIdたへの外部キーがあります。表にはもう 1 つの列があります。これは整数であり、一番上にゼロが表示されるソートの重みを教えてくれるだけです。GroupIdGroupIdEntryWeightWeight
基本的に何が起こったかというとWeight、データベースの設計時に誰かがこのフィールドを null 可能にしました。ここで、テーブルに追加する予定の制約Weightに合わせて調整する必要があります。これにより、基本的に同じグループにある場合に、2 つのエントリが同じ並べ替えの重みを持つことを防ぎます。UNIQUEUNQIUE(GroupId, Weight)EntryEntry
Weight既存のすべてのデータを調べて、グループごとに各エントリの列に 0 から N までの番号を付けることができるクエリはどれですか。N はEntry内のエントリの数です。Groupの に基づいて重みを設定し、特定のIdのの最小値が最小値になるEntryようにします。IdEntryGroupWeight
Groupテーブルを通過し、すべてのEntryエントリを結合してから、それらを反復処理してシーケンスを割り当てる1 つの大きな古いクエリが必要です。しかし、どこから始めればよいかわかりません。