我不是要简单的选择查询。我有一个包含多个记录的详细表。我想以某种方式获取特定 ID 的记录。
我试过以下查询:
SELECT `id` , `po_id` , `part_id` , `qty` , `price` , `status` , `lotid`
FROM `po_details`
WHERE `po_id` =3
它给了我以下结果:
现在我想要的是获取以上所有数据,但按 id 排序,然后按 partid 排序,所以结果将是这样的
id partid
---- ------
11 27
15 27
12 43
16 43
13 102
14 15
17 24
谁能帮帮我?我的查询需要进行哪些更改才能获得我想要的结果?
编辑
我已经尝试过这个查询,但它给了我相同的结果
SELECT `id` , `po_id` , `part_id` , `qty` , `price` , `status` , `lotid`
FROM `po_details`
WHERE `po_id` =3
ORDER BY `id` , `part_id`;
谢谢,
普卡奇亚
最佳答案
正如 Lieven 所说,您需要一个额外的列来进行排序。作为解决方法,您可以使用:
select p1.*
from po_details p1 join
(
select min(id) order_id, po_id , part_id
from po_details
where po_id =3
group by part_id, po_id
) p2 on p1.part_id = p2.part_id and p1.po_id = p2.po_id
order by p2.order_id,p1.id
关于mysql - 如何使用选择查询从表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283099/