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

回答編集履歴

5

推敲

2020/08/25 03:25

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -26,6 +26,7 @@
26
26
  追記
27
27
  --
28
28
  名前を判断に含めた場合を追加
29
+ 考え方は何も変わっておらず、単にキー項目を増やしただけです。
29
30
 
30
31
  相関副問合せ
31
32
  ```SQL

4

訂正

2020/08/25 03:25

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -47,7 +47,7 @@
47
47
  ```SQL
48
48
  select user.*
49
49
  from user inner join (
50
- select id, max(updateflg) max_flg from user group by id
50
+ select id, name, max(updateflg) max_flg from user group by id, name
51
51
  ) t1
52
52
  on user.id=t1.id and name=t1.name and user.updateflg=t1.max_flg
53
53
  ```

3

追記

2020/08/25 03:03

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -22,4 +22,32 @@
22
22
  select id, max(updateflg) max_flg from user group by id
23
23
  ) t1
24
24
  on user.id=t1.id and user.updateflg=t1.max_flg
25
+ ```
26
+ 追記
27
+ --
28
+ 名前を判断に含めた場合を追加
29
+
30
+ 相関副問合せ
31
+ ```SQL
32
+ select * from user
33
+ where updateflg=(
34
+ select max(updateflg) from user t1 where id=user.id and name=user.name
35
+ )
36
+ ```
37
+ 副問合せ
38
+ ```SQL
39
+ select * from user
40
+ where (id, name, updateflg) in (
41
+ select id, name, max(updateflg) from user group by id, name
42
+ )
43
+ ```
44
+
45
+ インラインビューとの結合
46
+
47
+ ```SQL
48
+ select user.*
49
+ from user inner join (
50
+ select id, max(updateflg) max_flg from user group by id
51
+ ) t1
52
+ on user.id=t1.id and name=t1.name and user.updateflg=t1.max_flg
25
53
  ```

2

追記

2020/08/25 03:02

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -7,6 +7,13 @@
7
7
  select max(updateflg) from user t1 where id=user.id
8
8
  )
9
9
  ```
10
+ 副問合せ
11
+ ```SQL
12
+ select * from user
13
+ where (id, updateflg) in (
14
+ select id, max(updateflg) from user group by id
15
+ )
16
+ ```
10
17
  インラインビューとの結合
11
18
 
12
19
  ```SQL

1

追記

2020/08/25 01:05

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,5 @@
1
+ 名前は旧姓などのケースがあると思いますので、判断には使用していません。
2
+
1
3
  相関副問合せ
2
4
  ```SQL
3
5
  select * from user