回答編集履歴

1

追記

2018/11/09 02:04

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -37,3 +37,31 @@
37
37
  ```
38
38
 
39
39
  全外部結合で取り出せば、削除も判断できます。(不要なら、left joinに変更して下さい)
40
+
41
+
42
+
43
+ 性能を考慮した別パターン
44
+
45
+ ```SQL
46
+
47
+ SELECT
48
+
49
+ A.クラスID, A.クラス履歴連番, A.生徒連番, A.生徒名
50
+
51
+ , B.クラスID, B.生徒連番, B.生徒名
52
+
53
+ FROM
54
+
55
+ 現クラステーブル B full join (
56
+
57
+ select * from 旧クラステーブル a0
58
+
59
+ where (クラスID, 旧クラス履歴番号) in (
60
+
61
+ select クラスID, max(旧クラス履歴番号) from 旧クラステーブル group by クラスID
62
+
63
+ )
64
+
65
+ ) A on B.クラスID=A.クラスID and B.生徒連番=A.生徒連番
66
+
67
+ ```