【发布时间】:2010-10-19 14:34:20
【问题描述】:
我有两张网店的桌子:
- 一个用于类别:id、title
- 一个用于产品:id、ownerid、title、price(ownerid 是父类别的 id)
我想选择所有类别并选择每个类别的最低和最高价格,因此查询如下:
SELECT
sc.*, MIN(s.price) AS minp, MAX(s.price) AS maxp
FROM
categories AS sc, products AS s
WHERE s.ownerid=sc.id
GROUP BY sc.id
它的工作原理与预期的差不多,唯一的例外是如果一个类别中没有任何产品,那么它就不会被选中。虽然这似乎合乎逻辑,因为我要求“s.ownerid=sc.id”,但我不知道足够的 SQL 以使其按预期工作。我需要所有类别,对于没有产品的类别,minp 和 maxp 应该为 0。
有什么建议吗?谢谢。
【问题讨论】:
-
你应该看看这个phpweby.com/tutorials/mysql/32 基本上你需要创建一个左连接或右连接。