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