Sql 如何查询所有从商店购买并了解其订单的用户
假设您有3个表(用户、产品和订单),这些表满足以下要求:Sql 如何查询所有从商店购买并了解其订单的用户,sql,postgresql,Sql,Postgresql,假设您有3个表(用户、产品和订单),这些表满足以下要求: 产品表有一个storeID字段 orders表有一个productID和userID字段 当您只知道storeID时,查询所有唯一用户的最佳方法是什么?可以描述表中可用的列吗? 你能试试这样的东西吗 select distinct userID from store_table as a inner join order_table as b on a.storeID=b.storeID inner join user_table a
- 产品表有一个storeID字段
- orders表有一个productID和userID字段
当您只知道storeID时,查询所有唯一用户的最佳方法是什么?可以描述表中可用的列吗? 你能试试这样的东西吗
select distinct userID
from store_table as a
inner join order_table as b on a.storeID=b.storeID
inner join user_table as c on b.userID=c.userID
where a.storeID='xxxxx'
试试这个:
SELECT DISTINCT U.UserName
FROM Orders O
INNER JOIN Products P ON O.productID=P.productID
INNER JOIN Users U ON U.UserID=O.UserID
WHERE P.StoreID=Input_StoreID
所有方法都会给出相同的结果 我更喜欢用这个
SELECT DISTINCT ID
FROM users u
INNER JOIN products p ON p.userID = u.ID
WHERE
p.storeID IN(SELECT storeID FROM orders)
在我看来,最好是从最小的表开始查询,而对较大的表使用JOIN,这样可以在JOIN部分更具选择性,使查询更优雅,并有一些性能改进
如果需要,可以通过向查询中添加更多条件来提高选择性