我有以下包含重复的user_id的查询。我不想看到一个以上的用户。我决定使用如下组合:如何在mysql的“join”之前使用“group by”?
SELECT u.`ID`, u.`user_login`, u.`user_registered`, u.`display_name`
FROM purchase_key p
LEFT JOIN users u ON p.user_id = u.id
WHERE ( `product_id` = 1 OR `product_id` = 2)
AND `create_date` <= '2015-09-20' AND `create_date` >= '2014-09-01'
group by p.user_id order by p.`create_date` asc
但是有没有办法在连接之前做这样的分组?
虽然严格来说,这将做的是要求什么,对于purchase_key的CREATE_DATE该结果由排序可能来自用户的任何购买(因此订单非常没有意义),但更糟糕的是,它可能会排除购买记录,并且创建日期在所需范围内,而不是范围之外的购买记录,因此缺少记录。 – Kickstart