【发布时间】:2012-02-24 15:59:08
【问题描述】:
这可能已经得到解答,但是,我已经阅读了所有“类似标题”,但没有找到更好地描述我想要实现的目标的答案。
Mysql查询是:
SELECT
inv.SKU,
inv.misc1,
inv.sizeletter,
inv.has_children,
ins_imb_1.ItemCustomerPriceLevel,
ins_imb_1.ItemNumber,
ins_imb_1.DiscountMarkupPriceRate1
FROM inv
INNER JOIN
ins_imb_1 ON ins_imb_1.ItemNumber
LIKE CONCAT( inv.SKU, '%' )
AND ins_imb_1.ItemCustomerPriceLevel = 'M'
WHERE inv.parent_sku = ''
AND inv.store_quantity > 0
AND inv.SKU LIKE 'ABC%'
AND inv.visible = 'Y'
GROUP BY inv.SKU
ORDER BY inv.SKU ASC
它返回的结果是:
SKU sizeword sizeletter has_children ItemCustomerPriceLevel ItemNumber DiscountMarkupPriceRate1
ABC107 NULL L Y M ABC107L 15.95
ABC108 NULL L Y M ABC108S 15.95
ABC109 NULL L Y M ABC109XX 17.45
sizeletter 对于所有商品都显示为 L(large),但 ItemNumber 有不同的尺寸(由最后一个字母表示),因此有时价格也不同(因为我们的较大尺寸会加价。)
我可以做些什么来确保我的内部连接按照可用的顺序进行? (按字母顺序排列,通常是 L、M、S、X 等)
所以 ItemNumber 将始终以 L 结尾,除非没有在这种情况下它会尝试 M 等。
提前致谢!
【问题讨论】:
-
您的 SQL 看起来无效。 “INNER JOIN”之后不应该有什么吗?最后的acs不应该是asc吗?
-
无效的 SQL 你可能在复制时遗漏了一些东西
-
哎呀,我复制到记事本格式化,一定是意外删除了一个块!
-
我真的不明白您在这里要做什么...如果您的尺寸对查询很重要,为什么不将它们包含在 group by 中?
-
它们的意义在于我想要内部加入时的第一个可用价格(通常应该是 ABC123L),然后我使用 php 在下拉菜单中显示尺寸。
标签: mysql sql-order-by inner-join