我有以下MySQL查询:
SELECT *
FROM products
WHERE catalog = 1
GROUP BY style
ORDER BY name ASC
limit 0, 100
由于我有多个具有相同“样式”的产品,这将返回关于具有某种“样式”的第一个产品的信息(通过按条件分组)。
因为有些产品有“折扣”,所以我的问题是:如何使“按样式分组”的条件优先考虑有折扣的产品?我的最终目标是使用1查询,而不是在每次返回的样式之后检查是否有折扣的产品。
如果我指定“组按样式,折扣”,它返回两个相同风格的产品:一个有和一个没有折扣。这不是我需要的东西--我只需要返回一个匹
我有两张桌子,一张是商品的,一张是折扣的。折扣表如下:
ID | Name | Percentage | Product Name Search Param
-----------------------------------------------------------
1 | Black Friday | 50 | a
2 | White Friday | 75 | b
产品表如下所示:
ID | Name | Price
--------------------------
1 | Shoes |
我有三个表,我们假装它们是产品、优惠券和折扣。我有一个试图拉取产品列表的查询,并运行子查询来查找任何具有有效折扣的优惠券。
例如,这显示了我正在尝试的内容:
SELECT products.id, products.name,
(
SELECT MAX(discounts.amount) FROM discounts
WHERE discounts.coupon_id = coupons.id
LIMIT 1
) as discount
FROM products
LEFT JOIN coupons ON products.id = coupons.product_id
GROUP