如何使用SQL上另一个查询的数据进行查询?

时间:2018-11-20 18:28:37

标签: postgresql

我有一个用户表和另一个订单表。一个用户可以有很多订单。如何获得最近的1000个用户,这些用户如何使用我最近的1000个订单?

查询-获取用户

select distinct users.id, users.first_name, users.last_name
from users
limit 2;

查询-获取订单

select distinct orders.id, orders.user_id
from orders
limit 2;

1 个答案:

答案 0 :(得分:1)

首先,您需要知道。当涉及到查询数据时,请不要单独进行操作。.如果将所有UsersOrders都放入,则您的数据将是unordered并且不一致性。.因此,您需要使Join才能看到它们具有User的所有Order。并且如@Sharon所述,您需要添加列date_ordered来查看该order所做的。。我假设您已经拥有该列,但是我将使用date_ordered来调用该列。

您的查询将是:

select
  users.id, 
  users.first_name, 
  users.last_name,
  orders.id
from
  users
  inner join orders on users.id = orders.user_id
order by
  orders.date_ordered desc
limit 1000

通过订单date_ordered使用desc,您将获得所有用户的最新订单。而且我假设表user_id中的orders列具有约束{{1 }}使用列foreign key对表users的引用。.