假设您有3个表(用户,产品和订单),这些表符合以下要求:
当您只知道storeID时,查询所有唯一身份用户的最佳方式是什么?
答案 0 :(得分:1)
所有方法都会给你相同的结果
我更愿意使用这个
SELECT DISTINCT ID
FROM users u
INNER JOIN products p ON p.userID = u.ID
WHERE
p.storeID IN(SELECT storeID FROM orders)
在我看来,最好是使用最小的表开始查询,同时使用大表的JOIN,这样你就可以在连接部分更具选择性,并使你的查询更优雅,并且有一些性能改进。
通过在需要时向查询添加更多条件,您可以更具选择性。
答案 1 :(得分:0)
可以描述表格中的可用列吗? 你能尝试这样的东西吗?
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'
答案 2 :(得分:0)
试试这个:
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