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

回答編集履歴

2

追記

2021/02/25 00:27

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,4 +11,7 @@
11
11
  > 次のようにWHERE p.age > 1とすると、ID=1 の子供は 2,5 だけなのに、2,5,4 が取得できてしまいました。
12
12
 
13
13
  データ作成時にIDの値を指定していないから、意図しない値になっているという事はありませんか?
14
- 実際のデータを確認してみて下さい。
14
+ 実際のデータを確認してみて下さい。
15
+
16
+ それから、質問のSQLではGROUP_CONCATは全体に対して行われています。
17
+ ID毎に行う場合は、**GROUP BY ID**が必要です。

1

追記

2021/02/25 00:27

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,4 +5,10 @@
5
5
 
6
6
  ただ、誤解されているようなので補足しておくと、GROUP_CONCATの過程でのNullは除外されます。
7
7
  `1,2,3,Null`のような結果は返却されません。
8
- すべてがNullだった場合だけNullが返却されるのです。
8
+ すべてがNullだった場合だけNullが返却されるのです。
9
+
10
+ > HAVINGではWHEREが存在するときの取得がおかしかったです。
11
+ > 次のようにWHERE p.age > 1とすると、ID=1 の子供は 2,5 だけなのに、2,5,4 が取得できてしまいました。
12
+
13
+ データ作成時にIDの値を指定していないから、意図しない値になっているという事はありませんか?
14
+ 実際のデータを確認してみて下さい。