回答編集履歴
2
追記
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
追記
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
|
+
実際のデータを確認してみて下さい。
|