1

我不是要求简单的选择查询。我有一个包含多条记录的详细表。我想以某种方式获取特定 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`;

谢谢,

普卡奇亚

4

2 回答 2

1

正如 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 
于 2012-11-08T06:16:47.157 回答
0

尝试这个:

SELECT  `id` ,  `po_id` ,  `part_id` ,  `qty` ,  `price` ,  `status` ,  `lotid` 
FROM  `po_details` 
WHERE  `po_id` =3 
ORDER BY `id` ,  `part_id`;
于 2012-11-08T05:41:42.617 回答