質問編集履歴

1

変更の時に記載したUPDATE文を追記

2017/06/26 08:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  この時、テーブル1にシーケンス番号とIDの組み合わせが存在し、テーブル2には存在しないものを抽出するSQLは下記のように記載することがわかっております。
16
16
 
17
-
17
+ ```SQL
18
18
 
19
19
  SELECT *
20
20
 
@@ -30,6 +30,8 @@
30
30
 
31
31
  AND テーブル2.ID IS NULL
32
32
 
33
+ ```
34
+
33
35
 
34
36
 
35
37
  このSELECTを使って、UPDATE文を記載する場合、どのようにすればよいでしょうか?
@@ -37,3 +39,61 @@
37
39
 
38
40
 
39
41
  よろしくお願いします。
42
+
43
+
44
+
45
+ 追記
46
+
47
+ 一度、下記のように記載しましたが、コードが長くなっています。
48
+
49
+ より短くかける方法をお願いします。
50
+
51
+
52
+
53
+ ```SQL
54
+
55
+ UPDATE テーブル1
56
+
57
+ SET 削除フラグ = '1'
58
+
59
+ WHERE テーブル1.ID IN
60
+
61
+ (
62
+
63
+ SELECT テーブル1.ID
64
+
65
+ FROM テーブル1
66
+
67
+ LEFT JOIN テーブル2
68
+
69
+ ON テーブル1.シーケンス番号 = テーブル2.シーケンス番号
70
+
71
+ AND テーブル1.ID = テーブル2.ID
72
+
73
+ WHERE テーブル2.シーケンス番号 IS NULL
74
+
75
+ AND テーブル2.ID IS NULL
76
+
77
+ )
78
+
79
+ AND テーブル1.シーケンス番号 IN
80
+
81
+ (
82
+
83
+ SELECT テーブル1.シーケンス番号
84
+
85
+ FROM テーブル1
86
+
87
+ LEFT JOIN テーブル2
88
+
89
+ ON テーブル1.シーケンス番号 = テーブル2.シーケンス番号
90
+
91
+ AND テーブル1.ID = テーブル2.ID
92
+
93
+ WHERE テーブル2.シーケンス番号 IS NULL
94
+
95
+ AND テーブル2.ID IS NULL
96
+
97
+ )
98
+
99
+ ```