我有两张桌子:
积分 ->
id bigint(20) NO PRI NULL auto_increment
created_at datetime NO NULL
ip varchar(255) NO NULL
item_id bigint(20) NO MUL NULL
updated_at timestamp YES NULL
和项目->
id bigint(20) NO PRI NULL auto_increment
author varchar(255) NO NULL
created_at datetime NO NULL
description varchar(255) NO NULL
link varchar(255) NO NULL
source varchar(255) NO NULL
title varchar(180) NO NULL
url_encoded varchar(255) NO UNI NULL
updated_at timestamp YES NULL
我希望在一个查询中加入他们,这样我就会得到item.*
相对于他们的总点数。我还想仅对在过去 24 小时内为其创建任何积分的项目执行此操作。
到目前为止,这是我的查询:
SELECT `items`.*, COUNT(points.item_id) as points
FROM `items`
INNER JOIN `points` ON `items`.`id` = `points`.`item_id`
WHERE `points`.`created_at` > '2013-03-16 16:00:14'
ORDER BY points DESC
LIMIT 30;
不幸的是,当它应该是两个时,它只给了我一排,当它应该是一个时,它给了我两分。在我的数据库中,有两个项目,每个项目一个点。请帮我解决这个问题并了解如何改进我的查询以获得两个结果。