在那里,如何缩短这个MySQL查询?
是否有反正缩短这个MySQL查询的所有?它需要根据价格规则从名为RuleValue的列中的PriceRuleDetail表中获取两个不同的行,但使用别名将它们返回到同一行中。它使用select语句内的子查询,我认为这是正确的,但可能有更简单的方法?
下面确实工作正常,我很满意它,但我想知道是否有一种方法使这个更短?
SELECT Stock.*,
(SELECT PriceRuleDetail.RuleValue
FROM PriceRuleDetail
WHERE PriceRuleDetail.Sku = Stock.Sku
AND PriceRuleDetail.PriceRule = 'RG'
AND PriceRuleDetail.Quantity = 1) as Price,
(SELECT PriceRuleDetail.RuleValue
FROM PriceRuleDetail
WHERE PriceRuleDetail.Sku = Stock.Sku
AND PriceRuleDetail.PriceRule = 'RRP'
AND PriceRuleDetail.Quantity = 1) as WasPrice
FROM Stock, StockCategoryMemberList
WHERE StockCategoryMemberList.Sku = Stock.Sku
AND StockCategoryMemberList.CategoryCode = 'FIRE'
在此先感谢。
安迪
的情况下,我发现这是所有答案中最快的,并且当然是最具可读性的。 非常感谢您的帮助! – Schodemeiss 2009-12-14 13:10:59
你已经更快了......我的文本编辑器中有相同的请求。 – Arno 2009-12-14 13:11:05