sql - 如何查询所有从商店购买的用户知道他们的订单

标签 sql postgresql

假设您有 3 个表(用户、产品和订单)并且这些表满足以下要求:

  • product 表有一个 storeID 字段
  • 订单表有一个 productID 和 userID 字段

当您只知道商店 ID 时,查询所有唯一用户的最佳方式是什么?

最佳答案

所有的方法都会给你相同的结果

我更喜欢用这个

SELECT DISTINCT ID
FROM users u
INNER JOIN products p ON p.userID = u.ID
WHERE 
    p.storeID IN(SELECT storeID FROM orders)

在我看来,最好是从最小的表开始查询,同时对大表使用 JOIN,这样您就可以在连接部分更具选择性,并使您的查询更优雅,并提高性能。

您可以通过在需要的地方向查询添加更多条件来更具选择性。

关于sql - 如何查询所有从商店购买的用户知道他们的订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574796/

相关文章:

sql - 如何使用 Presto 将时间列分组为 5 秒间隔并计算行数?

sql - 如何在 sql workbench/j 中添加计算列

sql - (PostgreSQL) 9.3.11 中 THEN 的案例语句 COUNT

sql - 如何检查序列是否大于某个数字,以及是否在Postgres中进行更改

php - 强制执行数据库约束 : code vs sql

sql - Postgresql:查找继承表中的特定记录属于哪个表

sql - 调用函数的 MS Access 更新查询不返回任何内容/更新字段

mysql - 选择每个 id 的 in() 返回相等的行数

mysql - 如何使用 SQL 合并来自多个表的数据?

PostgreSQL 中的 JSON 模式验证?