如何使用select查询从表中获取数据

时间:2012-11-08 05:36:29

标签: mysql sql select sql-order-by

我不是要求简单的选择查询。我有一个详细的表,有多个记录。我想以某种方式获取特定id的记录。

我在下面尝试过查询:

SELECT  `id` ,  `po_id` ,  `part_id` ,  `qty` ,  `price` ,  `status` ,  `lotid` 
FROM  `po_details` 
WHERE  `po_id` =3

它给了我以下结果:

enter image description here

现在我想要的是获取所有上述数据,但按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`;

谢谢,

Pkachhia

2 个答案:

答案 0 :(得分:1)

正如列文所说,你需要一个额外的列进行分类。作为解决方法,您可以使用:

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 

答案 1 :(得分:0)

试试这个:

SELECT  `id` ,  `po_id` ,  `part_id` ,  `qty` ,  `price` ,  `status` ,  `lotid` 
FROM  `po_details` 
WHERE  `po_id` =3 
ORDER BY `id` ,  `part_id`;