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

質問編集履歴

1

クエリエラーについて追記

2017/12/07 01:58

投稿

n_kitamura
n_kitamura

スコア17

title CHANGED
File without changes
body CHANGED
@@ -38,4 +38,25 @@
38
38
 
39
39
  そもそもGROUP_CONCATで検索している部分から否定して頂いても構いません。
40
40
 
41
- 何卒よろしくお願い致します。
41
+ 何卒よろしくお願い致します。
42
+
43
+ -------------------------
44
+
45
+ 追記:
46
+
47
+ .countで出力されたSQLは以下のような感じで、
48
+
49
+ ```
50
+ SELECT COUNT(*) AS count_all, comments.article_id AS comments_article_id
51
+ FROM `articles` INNER JOIN `comments` ON `comments`.`article_id` = `articles`.`id`
52
+ GROUP BY comments.article_id
53
+ HAVING (CONCAT(articles.description, GROUP_CONCAT(comments.description)) like '%ワード%')
54
+ ```
55
+
56
+ 1054 - Unknown column 'articles.description' in 'having clause'
57
+ となってしまいます。
58
+
59
+ - このエラーが出るのはカウント時のみで、selectを「articles.*」に置き換えると問題なく通ります。
60
+ - HavingをWhereに置き換えるとGROUP_CONCATが使えなくなってしまいます。
61
+ - エラー箇所であるarticles.descriptionを消すとクエリは通るのですが、当然記事本文が検索対象に含まれなくなります。
62
+ - そもそも、SELECTでcount_allのほかにcomments_article_idも指定されている理由もわかりません…。