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`;

ありがとう、

Pkachhia

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 に答える