将有序数据插入表中,然后通过查询获取组中的第一行

时间:2018-02-13 16:38:34

标签: mysql sql

我有一个与数据排序和分组有关的问题。

在下面的查询中,我已插入订单ID,付款ID,公共ID,并在某些付款日期创建,按订单ID和创建日期排序:

INSERT INTO order_payment_public_id (order_id, payment_id, public_id, created_at)
SELECT o.order_id, p.payment_id, ppid.public_id, p.created_at 
FROM order_ids o 
JOIN payment_request_index pr ON o.order_id=pr.order_id 
JOIN payment_index p ON p.payment_request_id=pr.payment_request_id 
JOIN payment_public_id ppid ON ppid.payment_id=p.payment_id 
ORDER BY o.order_id ASC, p.created_at ASC;

然后我执行以下查询:

SELECT * FROM order_payment_public_id GROUP BY order_id;

当我执行第一个查询时,我预计最早的created_at日期将在第一次出现order_id时位于第一行。然后,当我执行第二个查询时,我希望我将留下包含最早created_at日期的订单。

我的问题是:我的假设是否正确?使用GROUP BY order_id时,查询是否始终按每个order_id出现的第一行分组,其中包含最早的created_at日期?

对于我的问题,我将不胜感激。非常感谢。

0 个答案:

没有答案