私は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;
}
}