2010-03-10 158 views
2

我一直在这里了一会儿。基本上,我需要添加一个派生列来计数数据库中的博客条目的点击次数。问题是,命中总数只显示在第一张唱片上。有任何想法吗?我已经强化了我所说的查询的各个部分。查询低于:SQL查询问题

SELECT DISTINCT(t.entry_id), 
    exp_categories.rank, 
    **exp_hits.hits,** 
    t.entry_id, 
    t.weblog_id, 
    t.forum_topic_id, 
    t.author_id, 
    t.ip_address, 
    t.title, 
    t.url_title, 
    t.status, 
    t.dst_enabled, 
    t.view_count_one, 
    t.view_count_two, 
    t.view_count_three, 
    t.view_count_four, 
    t.allow_comments, 
    t.comment_expiration_date, 
    t.allow_trackbacks, 
    t.sticky, 
    t.entry_date, 
    t.year, 
    t.month, 
    t.day, 
    t.entry_date, 
    t.edit_date, 
    t.expiration_date, 
    t.recent_comment_date, 
    t.comment_total, 
    t.trackback_total, 
    t.sent_trackbacks, 
    t.recent_trackback_date, 
    t.site_id as entry_site_id, 
    w.blog_title, 
    w.blog_name, 
    w.search_results_url, 
    w.search_excerpt, 
    w.blog_url, 
    w.comment_url, 
    w.tb_return_url, 
    w.comment_moderate, 
    w.weblog_html_formatting, 
    w.weblog_allow_img_urls, 
    w.weblog_auto_link_urls, 
    w.enable_trackbacks, 
    w.trackback_use_url_title, 
    w.trackback_field, 
    w.trackback_use_captcha, 
    w.trackback_system_enabled, 
    m.username, 
    m.email, 
    m.url, 
    m.screen_name, 
    m.location, 
    m.occupation, 
    m.interests, 
    m.aol_im, 
    m.yahoo_im, 
    m.msn_im, 
    m.icq, 
    m.signature, 
    m.sig_img_filename, 
    m.sig_img_width, 
    m.sig_img_height, 
    m.avatar_filename, 
    m.avatar_width, 
    m.avatar_height, 
    m.photo_filename, 
    m.photo_width, 
    m.photo_height, 
    m.group_id, 
    m.member_id, 
    m.bday_d, 
    m.bday_m, 
    m.bday_y, 
    m.bio, 
    md.*, 
    wd.* 
FROM exp_weblog_titles AS t 
    LEFT JOIN exp_weblogs AS w ON t.weblog_id = w.weblog_id 
    LEFT JOIN exp_weblog_data AS wd ON t.entry_id = wd.entry_id 
    LEFT JOIN exp_members AS m ON m.member_id = t.author_id 
    LEFT JOIN exp_member_data AS md ON md.member_id = m.member_id 
    LEFT JOIN exp_category_posts ON wd.entry_id = exp_category_posts.entry_id 
    **LEFT JOIN 
    (
     SELECT COUNT(*) AS hits, exp_hits.entry_id FROM exp_hits ORDER BY exp_hits.entry_id 
    ) exp_hits ON t.entry_id = exp_hits.entry_id** 
    LEFT JOIN 
    ( 
     SELECT exp_categories.cat_id, cat_name as rank 
     FROM exp_categories 
     WHERE exp_categories.group_id = '9' 
    ) exp_categories ON exp_categories.cat_id = exp_category_posts.cat_id 
WHERE t.entry_id IN (2,3,4) ORDER BY exp_categories.rank DESC, **exp_hits.hits DESC**, entry_date desc 

回答

3

尝试量变到质变的子选择

SELECT COUNT(*) AS hits, 
    exp_hits.entry_id 
FROM exp_hits 
GROUP BY exp_hits.entry_id 
+1

工作得很好!谢谢! – 2010-03-10 07:55:05

0

出于好奇,是你的命中功能的东西,不能与view_count_one来完成/二/三/四场已经存在于数据库中并受到ExpressionEngine模板标签的支持?

+0

是的,因为视图计数功能必须在{weblog entries}标签中实现。它不适用于URL访问的条目。 – 2010-03-11 00:07:25