を使っているからですGROUP BY
。これは、テーブル内の各個別のカウントを取得することを意味しますi.items
。
その項目をクエリ結果に追加することで確認できます (私は に変更WHERE
しましたON
):
SELECT
i.items,
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
GROUP BY
i.items
解決策は、必要なアイテムを指定することです....
SELECT
i.items,
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
WHERE
i.items = 'foo'
/* -- Grouping not needed anymore, since you only have 1 item (= 1 group)
GROUP BY
i.items*/
... またはグループ化しない場合は、すべてのアイテムの合計を取得します。
-- Will fetch the total number of comments (that are linked to an item)
SELECT
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
... または結果を制限する このクエリは、結果を切り詰めて、1 つのアイテムのみのカウントを返します。アイテムは多かれ少なかれランダムに選択されますが、ORDER BY を追加してそれに影響を与えることができます。
SELECT
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
GROUP BY
i.items
/* -- Optional order, if you need to influence which of the items is preffered.
ORDER BY
i.items*/
LIMIT 1
したがって、あなたの質問から、私は問題が何であるかしかわかりません。どの解決策があなたに最も適しているかはわかりません. ただし、ここで選択できるオプションがいくつかあります。:)