質問編集履歴

4

誤字

2021/10/11 01:01

投稿

yoto009
yoto009

スコア9

test CHANGED
File without changes
test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  ### 実行したクエリ
94
94
 
95
- 以下クエリでは終了の会員は取得できるがlecture_user_statusesにレコードが存在しない会員を取得できない
95
+ 以下クエリでは終了の会員は取得できるがlecture_user_statusesにレコードが存在しない会員を取得できない
96
96
 
97
97
  サブクエリやnot exitsを使ったりもしましたがうまくいきませんでした。
98
98
 

3

誤字

2021/10/11 01:01

投稿

yoto009
yoto009

スコア9

test CHANGED
File without changes
test CHANGED
@@ -140,7 +140,7 @@
140
140
 
141
141
  ```
142
142
 
143
- $lecture_ids = [10, 11];
143
+ $lecture_ids = [1,];
144
144
 
145
145
 
146
146
 
@@ -190,7 +190,7 @@
190
190
 
191
191
  and `lecture_user_statuses`.`lecture_id` in {$lecture_ids}
192
192
 
193
- and `lecture_group_attendances`.user_id = `lecture_user_statuses`.user_id))");
193
+ and `lecture_group_attendances`.user_id = `lecture_user_statuses`.user_id)");
194
194
 
195
195
  })
196
196
 

2

情報の追加

2021/10/09 04:31

投稿

yoto009
yoto009

スコア9

test CHANGED
File without changes
test CHANGED
@@ -138,6 +138,68 @@
138
138
 
139
139
  ```
140
140
 
141
+ ```
142
+
143
+ $lecture_ids = [10, 11];
144
+
145
+
146
+
147
+ DB::table($this->getTable())
148
+
149
+ ->select([
150
+
151
+ 'users.user_id',
152
+
153
+ ])
154
+
155
+ ->leftJoin('lectures', 'lecture_group_attendances.lecture_group_id', '=', 'lectures.lecture_group_id')
156
+
157
+ ->join('lecture_user_statuses', function ($join) {
158
+
159
+ $join->on('lectures.lecture_id', '=', 'lecture_user_statuses.lecture_id')
160
+
161
+ ->on('lecture_group_attendances.user_id', '=', 'lecture_user_statuses.user_id');
162
+
163
+ })
164
+
165
+ ->join('users', 'lecture_user_statuses.user_id', '=', 'users.user_id')
166
+
167
+ ->where('lecture_group_attendances.attendance', 20)
168
+
169
+ ->whereIn('lecture_user_statuses.lecture_id', $lecture_ids)
170
+
171
+ ->where(function ($query) use ($lecture_ids) {
172
+
173
+ $query->where('lecture_user_statuses.status', '終了')
174
+
175
+ ->orWhereRaw("not exits (
176
+
177
+ select `users`.`user_id`
178
+
179
+ from `lecture_group_attendances`
180
+
181
+ left join `lectures` on `lecture_group_attendances`.`lecture_group_id` = `lectures`.`lecture_group_id`
182
+
183
+ inner join `lecture_user_statuses` on `lectures`.`lecture_id` = `lecture_user_statuses`.`lecture_id`
184
+
185
+ and `lecture_group_attendances`.`user_id` = `lecture_user_statuses`.`user_id`
186
+
187
+ inner join `users` on `lecture_user_statuses`.`user_id` = `users`.`user_id`
188
+
189
+ where `lecture_group_attendances`.`attendance` = 20
190
+
191
+ and `lecture_user_statuses`.`lecture_id` in {$lecture_ids}
192
+
193
+ and `lecture_group_attendances`.user_id = `lecture_user_statuses`.user_id))");
194
+
195
+ })
196
+
197
+ ->where('users.status', '!=', '退会')
198
+
199
+ ->pluck('user_id');
200
+
201
+ ```
202
+
141
203
  ### 補足情報(FW/ツールのバージョンなど)
142
204
 
143
205
  - Laravel5.5

1

文法の修正

2021/10/09 04:28

投稿

yoto009
yoto009

スコア9

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  以下クエリでは終了の会員は取得できるがlecture_user_statusesにレコードが存在しない会員を取得できない
96
96
 
97
+ サブクエリやnot exitsを使ったりもしましたがうまくいきませんでした。
98
+
97
99
  ```
98
100
 
99
101
  $lecture_ids = [1,2]
@@ -122,7 +124,7 @@
122
124
 
123
125
  ->whereIn('lecture_user_statuses.lecture_id', $lecture_ids)
124
126
 
125
- ->where(function ($query) use ($table) {
127
+ ->where(function ($query) {
126
128
 
127
129
  $query->where('lecture_user_statuses.status', '終了')
128
130