返回所有用户列表的最短查询> = 10最短=“最少字符数”

时间:2018-03-10 20:46:31

标签: mysql sql

假设我们有一个包含两个表的简单数据库:
(1)用户:有一个字段,user_id
(2)订单:有两个字段:order_id和user_id。

返回10个或更多订单的所有用户列表的最短查询是什么?注:
(a)最短=“最少字符数”。
(b)请确认您使用的是MySQL还是PostgreSQL语法。

解决方案
1) a)

SELECT user_id FROM Users    
JOIN Orders  
ON User.user_id = Orders.user_id
where orders >= 10;

b)MySQL

以上是否正确?
并且有更短的方式吗?

以下是否正确?
并且有一个更短的方式? 2) 一个)

SELECT Users.user_id FROM Users 
JOIN Orders  
on Users.user_id = Orders.user_id
group by Orders.user_id
HAVING count(order_id) >= 10;

b)MySQL

2 个答案:

答案 0 :(得分:0)

您的第一个查询不正确。我不打算做最短的,但是一个体面的查询看起来像:

SELECT user_id
FROM Orders 
GROUP BY user_id
HAVING COUNT(*) >= 10;

无论你提出什么样的查询都应该在功能上等同。

答案 1 :(得分:0)

首先使用工作查询创建一个名为maybe V的视图。 那么

\;