私は2つのテーブルを持っています:
「products」には基本的な製品データが含まれます
product_id | product_name | product_picture
1          | test         | pic.jpg
2          | samp         | sam.gif
product_details には、製品の詳細が含まれます (product_id ごとに 1 つ以上)
product_id | unit   | value
1          | size   | 100mm
1          | weight | 100g
2          | size   | 80mm
2          | color  | red
これをサイズ順に並べ替えたいと思います。(正規化されたテーブルに少し似ています) 結果:
2 | sample | sam.gif | size | 80mm  | color  | red
1 | test   | pic.jpg | size | 100mm | weight | 100g
プログラミング言語はPHPです。通常、私はこのようにします (PSEUDOCODE):
while (SELECT * FROM a) {
   while(SELECT * FROM b WHERE id = a.id) {
      myarray[a.id][b.unit] = b.value;
   }
}
しかし、結果を並べ替える方法がわかりません。(そして、PHP でのソートは SQL よりもパフォーマンスが低いと思いますか?)
編集: 新しいアイデア: 最初にクエリを実行して、正しい順序で product_ids を選択します:
while(SELECT products_id FROM products INNER JOIN products_details USING(products_id) WHERE unit = 'size' ORDER BY value) {
   while( SELECT value, unit FROM products_details WHERE products_id = id) {
      myarray[a.id][b.unit] = b.value;
   }
}