回答編集履歴
1
クエリメソッドの役割
answer
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
SQLのサブクエリ違反です。このメソッドに従ってSQLを構築した場合、これでサブクエリが複数になるとエラーが生じます。
|
1
|
+
SQLのサブクエリ(副問合せ)違反です。このメソッドに従ってSQLを構築した場合、これでサブクエリが複数になる(Bテーブル内のidが複数の場合、イコール演算子は使えない)とエラーが生じます。
|
2
2
|
|
3
3
|
```sql
|
4
4
|
select * from A where id = (select id from B)
|
5
5
|
```
|
6
6
|
|
7
|
-
この場合はinで対応しないといけません
|
7
|
+
このようにサブクエリを複数返す場合はin演算子で対応しないといけません
|
8
8
|
|
9
9
|
```
|
10
10
|
select * from A where id in (select id from B)
|
11
11
|
```
|
12
12
|
|
13
|
-
これを踏まえて、Laravelでinに対応したメソッドを探すと`whereIn`というのがあるので、それを活用して下さい。
|
13
|
+
これを踏まえて、Laravelでinに対応したメソッドを探すと`whereIn`というのがあるので、それを活用して下さい。LaravelのクエリメソッドはあくまでSQLを構築するためのメソッドなので、SQLの規約違反の処理は当然できません。
|
14
14
|
|
15
15
|
```sql
|
16
16
|
$order = Post::select("amount")
|