【问题标题】:MySQL avoid repeating valuesMySQL避免重复值
【发布时间】:2015-08-09 18:26:12
【问题描述】:

我正在使用下面的查询列出包含 4 个或更多案例 SKU 的订单。找到这些订单后,我不想重复 customer_email。

当前输出示例:

Order ID    | customer_email    | total_cases_invoiced
5           | this@that.com     | 6
45          | email1@here.com   | 4
32          | email1@here.com   | 7
23          | email1@here.com   | 5
28          | another@email.com | 10

所需输出示例:

Order ID    | customer_email    | total_cases_invoiced
5           | this@that.com     | 6
45          | email1@here.com   | 4
28          | another@email.com | 10

当前查询:

SELECT 
    *, customer_email, SUM(qty_invoiced) AS total_cases_invoiced
FROM
    mg_sales_flat_order_item
        JOIN
    mg_sales_flat_order ON mg_sales_flat_order.entity_id = mg_sales_flat_order_item.order_id
WHERE
    (mg_sales_flat_order_item.sku LIKE '%A'
        OR mg_sales_flat_order_item.sku LIKE '%F'
        OR mg_sales_flat_order_item.sku LIKE '%B'
        OR mg_sales_flat_order_item.sku LIKE '%C'
        OR mg_sales_flat_order_item.sku LIKE '%FP'
        OR mg_sales_flat_order_item.sku LIKE '%AP')
        AND row_total != 0
GROUP BY order_id
HAVING SUM(qty_invoiced) >= 4
ORDER BY customer_email DESC

【问题讨论】:

  • 您确定结果集中显示了哪些Order IDtotal_cases_invoiced 值?您的“期望”输出似乎并不表示您关心,在这种情况下,我建议您只选择电子邮件地址。

标签: mysql select join


【解决方案1】:

您是否尝试像这样将您的customer_emailcustomer_id 组合在一起?

SELECT 
    *, customer_email, SUM(qty_invoiced) AS total_cases_invoiced
FROM
    mg_sales_flat_order_item
        JOIN
    mg_sales_flat_order ON mg_sales_flat_order.entity_id = mg_sales_flat_order_item.order_id
WHERE
    (mg_sales_flat_order_item.sku LIKE '%A'
        OR mg_sales_flat_order_item.sku LIKE '%F'
        OR mg_sales_flat_order_item.sku LIKE '%B'
        OR mg_sales_flat_order_item.sku LIKE '%C'
        OR mg_sales_flat_order_item.sku LIKE '%FP'
        OR mg_sales_flat_order_item.sku LIKE '%AP')
        AND row_total != 0
GROUP BY (order_id,customer_email)
HAVING SUM(qty_invoiced) >= 4
ORDER BY customer_email DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2013-06-30
    • 2016-05-17
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多