質問するログイン新規登録

回答編集履歴

1

追記

2018/11/09 02:04

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -17,4 +17,18 @@
17
17
  )
18
18
  ) A on B.クラスID=A.クラスID and B.生徒連番=A.生徒連番
19
19
  ```
20
- 全外部結合で取り出せば、削除も判断できます。(不要なら、left joinに変更して下さい)
20
+ 全外部結合で取り出せば、削除も判断できます。(不要なら、left joinに変更して下さい)
21
+
22
+ 性能を考慮した別パターン
23
+ ```SQL
24
+ SELECT
25
+ A.クラスID, A.クラス履歴連番, A.生徒連番, A.生徒名
26
+ , B.クラスID, B.生徒連番, B.生徒名
27
+ FROM
28
+ 現クラステーブル B full join (
29
+ select * from 旧クラステーブル a0
30
+ where (クラスID, 旧クラス履歴番号) in (
31
+ select クラスID, max(旧クラス履歴番号) from 旧クラステーブル group by クラスID
32
+ )
33
+ ) A on B.クラスID=A.クラスID and B.生徒連番=A.生徒連番
34
+ ```