2

やあみんな。これはそれがどのように機能するかについての私の表です:

ここに画像の説明を入力してください

別のテーブルのレコードと一致するレコードについて、ビューの数をカウントできるようにしたい(ビューは一意であり、ユーザーのIPを含む)。たとえば、GETリクエストを実行すると、SQLクエリが一致を検索し、ビューの数をカウントします。レコードごとに収集されているため、次のように表示されます。

GETクエリ: stack

画面:

   record_id    |    keyword    |    total_views
----------------------------------------------------
       2        |     stack     |         2
----------------------------------------------------
       5        |     stack     |         1 

表からわかるように、の2ビューrecord_id 21ビューがありますrecord_id 5。私の言いたいことがわかりますか?私はこれを行う方法を知るのに苦労しています。

乾杯。

4

2 に答える 2

4
SELECT  r.*, COUNT(v.record_id)
FROM    records r
LEFT JOIN
        views v
ON      v.record_id = r.record_id
WHERE   r.keyword = 'stack'
GROUP BY
        r.record_id

次のインデックスを作成します。

records (keyword, record_id)
views (record_id)

これが速く動作するために。

于 2011-04-21T14:48:02.370 に答える
0
select `record_id`, `keyword`, count(*) as `total_views`
       from `views` join `records` using (`record_id`)
       where `keyword`='stack'
       group by `record_id`
于 2011-04-21T14:48:16.527 に答える