在第二(连接)表的范围内有条件地连接两个表

时间:2016-11-14 19:37:43

标签: php mysql join range

我有两张桌子:

表1:

store_products
----------------
ID | name | sold
----------------
ID => INT
name => STRING
sold => INT

表2

store_product_views
---------------------
productID | timestamp
---------------------
productID => INT
timestamp => INT

关系设置为一对多,其中一个store_product_views有多个store_product

代码设置为只要查看store_product_views中的项目,就会productID timestampstore_products

我想生成的数据可以获得timestamp范围内的产品ID,产品名称,已售产品数量以及该产品的总浏览量。如果我遗漏AND views.timestamp >...部分,这可以正常工作。

以下是查询:

SELECT store_products.ID as id, name, sold, COUNT(views.productID) AS views 
FROM store_products 
JOIN store_products_views AS views ON store_products.ID = views.productID 
    AND views.timestamp > '".$options->start."' AND views.timestamp < '".$options->end."' 
GROUP BY store_products.ID

$options->start$options->end包含我要为范围过滤的时间戳。问题是我只在时间戳是表中的最大值时获取数据。如果我设置$ options-&gt;结束值来获取数据的子集,我什么都得不到。

0 个答案:

没有答案