回答編集履歴
2
誤字を修正
test
CHANGED
@@ -162,7 +162,7 @@
|
|
162
162
|
|
163
163
|
|
164
164
|
|
165
|
-
そのような投稿の「イイネ数」を 0 として取得したい場合は、以下のようにする
|
165
|
+
そのような投稿の「イイネ数」を 0 として取得したい場合は、以下のようにすると良いでしょう。
|
166
166
|
|
167
167
|
```sql
|
168
168
|
|
1
追記
test
CHANGED
@@ -153,3 +153,97 @@
|
|
153
153
|
3 rows in set (0.00 sec)
|
154
154
|
|
155
155
|
```
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
# Update
|
160
|
+
|
161
|
+
上記の SQLだと、1つも「イイネ」されていない投稿の「イイネ数」(`cnt`カラム)は`NULL`になります。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
そのような投稿の「イイネ数」を 0 として取得したい場合は、以下のようにするよ良いでしょう。
|
166
|
+
|
167
|
+
```sql
|
168
|
+
|
169
|
+
SELECT
|
170
|
+
|
171
|
+
news.news_no,
|
172
|
+
|
173
|
+
news.news_category_no,
|
174
|
+
|
175
|
+
news.news_title,
|
176
|
+
|
177
|
+
category.category_no,
|
178
|
+
|
179
|
+
category.category_name,
|
180
|
+
|
181
|
+
IFNULL(tmp.cnt, 0) AS cnt
|
182
|
+
|
183
|
+
FROM news
|
184
|
+
|
185
|
+
LEFT JOIN category ON news.news_category_no = category.category_no
|
186
|
+
|
187
|
+
LEFT JOIN (SELECT like_news_no, COUNT(*) AS cnt FROM like_news GROUP BY like_news_no) AS tmp
|
188
|
+
|
189
|
+
ON news.news_no = tmp. like_news_no
|
190
|
+
|
191
|
+
ORDER BY news.news_no;
|
192
|
+
|
193
|
+
```
|
194
|
+
|
195
|
+
実行結果
|
196
|
+
|
197
|
+
```
|
198
|
+
|
199
|
+
mysql> INSERT INTO news VALUES (4, 2, '果物です');
|
200
|
+
|
201
|
+
Query OK, 1 row affected (0.01 sec)
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
mysql> SELECT
|
206
|
+
|
207
|
+
-> news.news_no,
|
208
|
+
|
209
|
+
-> news.news_category_no,
|
210
|
+
|
211
|
+
-> news.news_title,
|
212
|
+
|
213
|
+
-> category.category_no,
|
214
|
+
|
215
|
+
-> category.category_name,
|
216
|
+
|
217
|
+
-> IFNULL(tmp.cnt, 0) AS cnt
|
218
|
+
|
219
|
+
-> FROM news
|
220
|
+
|
221
|
+
-> LEFT JOIN category ON news.news_category_no = category.category_no
|
222
|
+
|
223
|
+
-> LEFT JOIN (SELECT like_news_no, COUNT(*) AS cnt FROM like_news GROUP BY like_news_no) AS tmp
|
224
|
+
|
225
|
+
-> ON news.news_no = tmp. like_news_no
|
226
|
+
|
227
|
+
-> ORDER BY news.news_no;
|
228
|
+
|
229
|
+
+---------+------------------+--------------------+-------------+---------------+-----+
|
230
|
+
|
231
|
+
| news_no | news_category_no | news_title | category_no | category_name | cnt |
|
232
|
+
|
233
|
+
+---------+------------------+--------------------+-------------+---------------+-----+
|
234
|
+
|
235
|
+
| 1 | 1 | 美味しいです | 1 | 野菜 | 2 |
|
236
|
+
|
237
|
+
| 2 | 2 | 甘いです | 2 | 果物 | 1 |
|
238
|
+
|
239
|
+
| 3 | 1 | 不味いです | 1 | 野菜 | 1 |
|
240
|
+
|
241
|
+
| 4 | 2 | 果物です | 2 | 果物 | 0 |
|
242
|
+
|
243
|
+
+---------+------------------+--------------------+-------------+---------------+-----+
|
244
|
+
|
245
|
+
4 rows in set (0.01 sec)
|
246
|
+
|
247
|
+
```
|
248
|
+
|
249
|
+
|