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

回答編集履歴

5

推敲

2020/03/07 07:32

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -20,7 +20,8 @@
20
20
 
21
21
  追記
22
22
  --
23
- RIREKI_NUMBERがそれぞれのテーブルごとのものの場合は、not existsを同様に条件として追加すればOK
23
+ RIREKI_NUMBERがそれぞれのテーブルごとのものの場合(最新のUSER_AUTH最新のUSER_NAMEを結合たい)
24
+ は、not existsを同様に条件として追加すればOK
24
25
  ```SQL
25
26
  SELECT UA.USER_ID, UA.RIREKI_NUMBER, UN.USER_NAME_KANJI, UN.USER_NAME_KANA
26
27
  FROM USER_AUTH UA

4

追記

2020/03/07 07:32

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -16,4 +16,26 @@
16
16
 
17
17
  ```
18
18
  ※"を使用した項目名やエイリアスは大文字小文字を厳密に区別されるようになります。
19
- 意識しての事なら良いですけど、そうでないなら"は使用しない方が良いかと思います。
19
+ 意識しての事なら良いですけど、そうでないなら"は使用しない方が良いかと思います。
20
+
21
+ 追記
22
+ --
23
+ RIREKI_NUMBERがそれぞれのテーブルごとのものの場合は、not existsを同様に条件として追加すればOK
24
+ ```SQL
25
+ SELECT UA.USER_ID, UA.RIREKI_NUMBER, UN.USER_NAME_KANJI, UN.USER_NAME_KANA
26
+ FROM USER_AUTH UA
27
+ LEFT JOIN (
28
+ select *
29
+ from USER_NAME UN
30
+ where not exists(
31
+ select 1 from USER_NAME
32
+ where USER_ID=UN.USER_ID and RIREKI_NUMBER > UN.RIREKI_NUMBER
33
+ )
34
+ ) UN
35
+ ON UA.USER_ID = UN.USER_ID
36
+ WHERE UA.USER_ID = 'TESTGY01'
37
+ and not exists(
38
+ select 1 from USER_AUTH
39
+ where USER_ID=UA.USER_ID and RIREKI_NUMBER > UA.RIREKI_NUMBER
40
+ )
41
+ ```

3

追記

2020/03/07 07:27

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  結合条件にUA.RIREKI_NUMBER = UN.RIREKI_NUMBERを加えるだけです。
2
- Existsの条件は不要です。
2
+ ~~Existsの条件は不要です~~
3
+ USER_AUTH のプライマリーが(USER_ID, RIREKI_NUMBER )なので訂正。
3
4
  ```SQL
4
5
  SELECT UA.USER_ID, UA.RIREKI_NUMBER, UN.USER_NAME_KANJI, UN.USER_NAME_KANA
5
6
  FROM USER_AUTH UA
@@ -7,6 +8,12 @@
7
8
  ON UA.USER_ID = UN.USER_ID
8
9
  AND UA.RIREKI_NUMBER = UN.RIREKI_NUMBER
9
10
  WHERE UA.USER_ID = 'TESTGY01'
11
+ and not exists(
12
+ select 1 from USER_AUTH
13
+ where USER_ID=UA.USER_ID
14
+ and RIREKI_NUMBER > UA.RIREKI_NUMBER
15
+ )
16
+
10
17
  ```
11
18
  ※"を使用した項目名やエイリアスは大文字小文字を厳密に区別されるようになります。
12
19
  意識しての事なら良いですけど、そうでないなら"は使用しない方が良いかと思います。

2

推敲

2020/03/07 07:14

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,10 +1,7 @@
1
1
  結合条件にUA.RIREKI_NUMBER = UN.RIREKI_NUMBERを加えるだけです。
2
2
  Existsの条件は不要です。
3
3
  ```SQL
4
- SELECT UA.USER_ID
5
- , UA.RIREKI_NUMBER
6
- , UN.USER_NAME_KANJI
4
+ SELECT UA.USER_ID, UA.RIREKI_NUMBER, UN.USER_NAME_KANJI, UN.USER_NAME_KANA
7
- , UN.USER_NAME_KANA
8
5
  FROM USER_AUTH UA
9
6
  LEFT JOIN USER_NAME UN
10
7
  ON UA.USER_ID = UN.USER_ID

1

推敲

2020/03/07 07:04

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  結合条件にUA.RIREKI_NUMBER = UN.RIREKI_NUMBERを加えるだけです。
2
- Existの条件は不要です。
2
+ Existsの条件は不要です。
3
3
  ```SQL
4
4
  SELECT UA.USER_ID
5
5
  , UA.RIREKI_NUMBER