mysql - 有没有办法让查询遵循 SQL 中的层次结构?

标签 mysql sql oracle sqlite amazon-web-services

我有一组数据,其中有很多卖家,但我们有一个卖家层次结构,我们更喜欢这些卖家,并希望为每种产品选择最佳可用卖家。

ID |ITEM   | price   | Seller
===========================
1  |Laptop | 100     | eBay
2  |Laptop | 125     | Amazon
3  |Apple  | 5       | Amazon

因此,当我查询笔记本电脑的数据时,我希望每件商品都有最畅销的商品。我为卖家提供的层次结构是 1. ebay 2. Amazon,因此本质上它只会返回第一条和第三条记录。

你会怎样做呢?

最佳答案

你可以通过子查询得到它:

SELECT *
FROM tbl t1
WHERE (t1.id, t1.item, t1.price) IN
    (SELECT t2.id, t2.item, t2.price
     FROM tbl t2
     WHERE t1.id = t2.id
     ORDER BY t2.price
     LIMIT 1);

关于mysql - 有没有办法让查询遵循 SQL 中的层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496675/

相关文章:

mysql - 使用 AND & OR 语句对 MySQL 来说是不是太糟糕了?

mysql - 如何优化查询?我能读懂什么? (如果可以的话,用俄语,或英语)

mysql,对不同的值进行分组

c# - 将存储过程转换为 LINQ 查询

java - 超出最大游标数 SQLException-- 配置问题或游标泄漏?

c# - 子类上的 NHibernate (3.1) 子查询未加入基类表

MySQL如何选择字段或如果字段为空则设置为空?

java - java连接数据库的驱动

sql - oracle:只删除空行

mysql避免子查询