0
$query = "
SELECT a_orders.id, a_orders.billing, a_orders.type, 
    SUM(a_order_rows.quant_refunded*a_order_rows.price*((100-a_orders.discount)*.01)) as refund_total, 
    SUM(a_order_rows.quant*a_order_rows.price*((100-a_orders.discount)*.01)) as order_total,
    GROUP_CONCAT(DISTINCT a_order_rows.date_refunded) as refund_dates
FROM a_order_rows JOIN a_orders 
ON a_order_rows.order_id = a_orders.id 
GROUP BY a_orders.id, a_orders.billing 
HAVING MAX(a_order_rows.quant_refunded) > 0 
ORDER BY a_order_rows.date_refunded DESC, a_orders.id DESC
LIMIT 50";

$query = "
SELECT a_orders.id, a_orders.billing, a_orders.type, 
    SUM(a_order_rows.quant_refunded*a_order_rows.price*((100-a_orders.discount)*.01))+a_orders.refund_adjustment as refund_total, 
    SUM(a_order_rows.quant*a_order_rows.price*((100-a_orders.discount)*.01)) as order_total,
    GROUP_CONCAT(DISTINCT a_order_rows.date_refunded) as refund_dates
FROM a_order_rows JOIN a_orders 
ON a_order_rows.order_id = a_orders.id 
GROUP BY a_orders.id, a_orders.billing 
HAVING MAX(a_order_rows.quant_refunded) > 0 
ORDER BY a_order_rows.date_refunded DESC, a_orders.id DESC
LIMIT 50";

+a_orders.refund_adjustmentクエリ 2 の 2 行目に注意してください。それを追加するだけで、結果の順序が変わります。その列を集計に追加せずに選択した場合も同じことが起こります (たとえば、行 1 のa_orders.refund_adjustment,a_orders.type,に追加します)。

その列をミ​​ックスに追加した後、結果は期待どおりに並べ替えられなくなりdate_refunded DESCます。何を与える?これが結果の順序にどのように影響するか理解できません。

4

1 に答える 1