假设我们有一个包含两个表的简单数据库:
(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
答案 0 :(得分:0)
您的第一个查询不正确。我不打算做最短的,但是一个体面的查询看起来像:
SELECT user_id
FROM Orders
GROUP BY user_id
HAVING COUNT(*) >= 10;
无论你提出什么样的查询都应该在功能上等同。
答案 1 :(得分:0)
首先使用工作查询创建一个名为maybe V的视图。 那么
\;