我在mySql中有以下表格。sql没有显示正确的结果
博客
Field Type
---------- ------------
id int(11)
name varchar(255)
user_id int(11)
share int(14)
user_blog_analytics
Field Type
----------- ------------
id int(11)
blog_id int(11)
ip varchar(255)
impressions int(11)
date date
user_profile
Field Type
----------- ------------
id int(11)
user_id int(11)
description text
share int(14)
个user_profile_analytics
Field Type
----------- ------------
id int(11)
user_id int(11)
ip varchar(255)
impressions int(11)
date date
用户
我想要一个查询,让我每个用户的总博客股份从blog
表,从user_profile
表中每个用户的总轮廓股,占总博客的观点从昨天即从user_blog_analytics
表,所有时间观点从user_profile_analytics
表中的配置文件。
我创建了一个查询,但没有给我我期望的结果,它只给了我很少的结果。
SELECT a.user_id, COUNT(DISTINCT b.ip) AS blog_view_count, a.share AS blog_share_count, c.share AS profile_share_count, COUNT(DISTINCT d.ip) AS user_profile_view
FROM blog AS a
JOIN user_blog_analytics AS b ON b.blog_id=a.id
JOIN user_profile AS c ON c.user_id=a.user_id
JOIN user_profile_analytics AS d ON d.user_id=c.user_id
JOIN users AS e ON e.id=a.user_id
WHERE DATE_SUB(CURDATE(), INTERVAL 1 DAY) = b.date AND e.role_id=2
GROUP BY a.id;
当我运行此查询它给了我只有一个结果,但是当我手工检查表那么就应该给我至少2分的结果。告诉我我错在哪里,如何通过修改此查询来获得结果。
这很难说没有数据,但你有几个聚合件在那里。你能分享你得到的结果和你期望的结果吗?这可能是足够的数据来说明发生了什么。 – 2014-12-09 11:31:16
那么用户可以有多个配置文件?什么是INT(14)? !?!?! – Strawberry 2014-12-09 11:32:22