2
我有2個表:SQL表排序denomalized表
「產品」 conatains基本產品數據
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。 Usualy我會這樣做(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;
}
}
這是一個非常好的解決方案。謝謝!我會嘗試。 – waflija