有一张订单表:
CREATE TABLE orders (
id INT,
userId INT
)
例如,使用这些值:
INSERT INTO `orders` (`id`, `userId`) VALUES (1, 10), (2, 10), (3, 10)
有一个奖金表:
CREATE TABLE bonuses (
id INT,
userId INT
)
例如,使用这些值:
INSERT INTO `bonuses` (`id`, `userId`) VALUES (1, 10), (2, 10), (3, 11), (3, 10)
一个任务:
我需要按每个用户的订单数进行分组。是这样的吗:
SELECT `userId`, COUNT(*) AS `order_counts`
FROM `orders`
GROUP BY `userId`
HAVING `order_counts` >= 3
并获得那些订单多于或等于奖金的用户。(这不能)
基于示例:拥有userId
10 的用户有 3 个订单 ( order_counts
) 和 3 个奖金 ( bonuses_counts
)。我想在执行请求后看到它。那么,也可能有一个用户有5个订单,例如4个奖金,他也应该在选择中。如果有 10 个订单,则没有 12 个奖金。
最小的例子:tyts。
以相同的方式对订单进行分组,然后根据所需的条件加入: