質問編集履歴
2
不要項目を削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,39 +6,39 @@
|
|
6
6
|
|
7
7
|
A TABLE (B TABLEに +Nレコード追加されたものが A TABLEです)
|
8
8
|
|
9
|
-
|
|
9
|
+
|id|xdate|コメント|
|
10
10
|
|
11
|
-
|:--|
|
11
|
+
|:--|--:|--:|
|
12
12
|
|
13
|
-
|1|
|
13
|
+
|1|20190701| ->A,B両方テーブルに存在するので除外|
|
14
14
|
|
15
|
-
|2|2
|
15
|
+
|2|20190710| ->idが重複し、最古でないので除外|
|
16
16
|
|
17
|
-
|2|
|
17
|
+
|2|20190702| ->このレコードを得たい|
|
18
18
|
|
19
|
-
|4|
|
19
|
+
|4|20190801| ->このレコードを得たい|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
23
|
B TABLE
|
24
24
|
|
25
|
-
|
|
25
|
+
|id|xdate|コメント|
|
26
26
|
|
27
|
-
|:--|
|
27
|
+
|:--|--:|--:|
|
28
28
|
|
29
|
-
|1|
|
29
|
+
|1|20190701| ->A,B両方テーブルに存在するので除外|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
33
|
期待する結果
|
34
34
|
|
35
|
-
|
|
35
|
+
|id|xdate|コメント|
|
36
36
|
|
37
|
-
|:--|
|
37
|
+
|:--|--:|--:|
|
38
38
|
|
39
|
-
|2|
|
39
|
+
|2|20190702| ->id重複の内、xdateが古いレコード
|
40
40
|
|
41
|
-
|4|
|
41
|
+
|4|20190801| ->Aにしか無いレコード
|
42
42
|
|
43
43
|
|
44
44
|
|
@@ -56,27 +56,27 @@
|
|
56
56
|
|
57
57
|
FROM B
|
58
58
|
|
59
|
-
where A.
|
59
|
+
where A.id=B.id
|
60
60
|
|
61
61
|
)
|
62
62
|
|
63
63
|
```
|
64
64
|
|
65
|
-
このSQLで下記の通り A のみ存在するレコードの取得は出来ましたが、
|
65
|
+
このSQLで下記の通り A のみ存在するレコードの取得は出来ましたが、idが重複している。
|
66
66
|
|
67
|
-
|
|
67
|
+
|id|date|コメント|
|
68
68
|
|
69
69
|
|:--:|--:|--:|
|
70
70
|
|
71
|
-
|2 |2
|
71
|
+
|2 |20190710|-> idが重複し最古でないので除外したい|
|
72
72
|
|
73
|
-
|2 |
|
73
|
+
|2 |20190702||
|
74
74
|
|
75
|
-
|4 |
|
75
|
+
|4 |20190801||
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
一方、A 内の重複で最古のレコードは、(等号記号で最古?)
|
79
|
+
一方、A 内の重複で最古のレコードは、(不等号記号で最古?変では?)
|
80
80
|
|
81
81
|
```SQL
|
82
82
|
|
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
( select 1 from A as t2
|
88
88
|
|
89
|
-
where t1.
|
89
|
+
where t1.id=t2.id
|
90
90
|
|
91
91
|
and t1.xdate > t2.xdate );
|
92
92
|
|
@@ -96,15 +96,15 @@
|
|
96
96
|
|
97
97
|
で下記の通り取れたのですが、
|
98
98
|
|
99
|
-
|
|
99
|
+
|id|xdate|コメント|
|
100
100
|
|
101
|
-
|:--:|--:|--:|
|
101
|
+
|:--:|--:|--:|
|
102
102
|
|
103
|
-
|1 |
|
103
|
+
|1 |20190701| ->これは B TABLE と重複しているので除外したい|
|
104
104
|
|
105
|
-
|2 |
|
105
|
+
|2 |20190702||
|
106
106
|
|
107
|
-
|4 |
|
107
|
+
|4 |20190801||
|
108
108
|
|
109
109
|
|
110
110
|
|
1
表形式とコード形式にしました
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,39 +4,45 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
A TABLE
|
7
|
+
A TABLE (B TABLEに +Nレコード追加されたものが A TABLEです)
|
8
8
|
|
9
|
-
|Aid|Bid|xdate|
|
9
|
+
|Aid|Bid|xdate|コメント|
|
10
10
|
|
11
|
-
|
|
11
|
+
|:--|:--:|--:|--:|
|
12
12
|
|
13
|
-
|
|
13
|
+
|1|11|20190701| ->両方テーブルに存在するので除外|
|
14
14
|
|
15
|
-
|2
|
15
|
+
|2|22|20190710| ->Aidが重複し、最古でないので除外|
|
16
16
|
|
17
|
+
|2|33|20190702| ->このレコードを得たい|
|
18
|
+
|
17
|
-
|4
|
19
|
+
|4|44|20190801| ->このレコードを得たい|
|
18
20
|
|
19
21
|
|
20
22
|
|
21
23
|
B TABLE
|
22
24
|
|
23
|
-
|Aid|Bid|xdate|
|
25
|
+
|Aid|Bid|xdate|コメント|
|
24
26
|
|
27
|
+
|:--|:--:|--:|--:|
|
28
|
+
|
25
|
-
|1
|
29
|
+
|1|11|20190701| ->両方テーブルに存在するので除外|
|
26
30
|
|
27
31
|
|
28
32
|
|
29
33
|
期待する結果
|
30
34
|
|
31
|
-
|Aid|Bid|xdate|
|
35
|
+
|Aid|Bid|xdate|コメント|
|
32
36
|
|
33
|
-
|
|
37
|
+
|:--|:--:|--:|--:|
|
34
38
|
|
39
|
+
|2|33|20190702| ->Aid重複の内、xdateが古いレコード
|
40
|
+
|
35
|
-
|4
|
41
|
+
|4|44|20190801| ->Aにしか無いレコード
|
36
42
|
|
37
43
|
|
38
44
|
|
39
|
-
|
45
|
+
```SQL
|
40
46
|
|
41
47
|
SELECT *
|
42
48
|
|
@@ -54,9 +60,13 @@
|
|
54
60
|
|
55
61
|
)
|
56
62
|
|
63
|
+
```
|
64
|
+
|
57
|
-
このSQLで下記の通り
|
65
|
+
このSQLで下記の通り A のみ存在するレコードの取得は出来ましたが、Aidが重複している。
|
58
66
|
|
59
67
|
|Aid|Bid|xdate|
|
68
|
+
|
69
|
+
|:--:|--:|--:|
|
60
70
|
|
61
71
|
|2 |22 |20190710|
|
62
72
|
|
@@ -66,13 +76,13 @@
|
|
66
76
|
|
67
77
|
|
68
78
|
|
69
|
-
一方、最古のレコードは、
|
79
|
+
一方、A 内の重複で最古のレコードは、(等号記号で最古?)
|
80
|
+
|
81
|
+
```SQL
|
70
82
|
|
71
83
|
select * from A as t1
|
72
84
|
|
73
|
-
where
|
74
|
-
|
75
|
-
not exists
|
85
|
+
where not exists
|
76
86
|
|
77
87
|
( select 1 from A as t2
|
78
88
|
|
@@ -80,13 +90,17 @@
|
|
80
90
|
|
81
91
|
and t1.xdate > t2.xdate );
|
82
92
|
|
93
|
+
```
|
94
|
+
|
83
95
|
|
84
96
|
|
85
97
|
で下記の通り取れたのですが、
|
86
98
|
|
87
|
-
|Aid|Bid|xdate|
|
99
|
+
|Aid|Bid|xdate|コメント|
|
88
100
|
|
101
|
+
|:--:|--:|--:|--:|
|
102
|
+
|
89
|
-
|1 |11 |20190701| ->これは
|
103
|
+
|1 |11 |20190701| ->これは B TABLE と重複しているので除外したい
|
90
104
|
|
91
105
|
|2 |33 |20190702|
|
92
106
|
|