2011-07-31 5 views
1

私はショッピングカートを持っており、アイテムは配列としてセッションに保存されています。配列キーはアイテムのIDを表し、配列の値はアイテムの量です。 array([1]=>1, [2]=>1);mysqlクエリで "仮想"テーブルを作成して使用することはできますか?

合計金額を計算したいと思います。 1つのmysqlクエリを使用してそれを作ることは可能ですか?

例えば:

SELECT SUM(c.count * i.price) FROM (--virtual table--) c 
             LEFT JOIN item i ON i.id=c.id; 
+0

を使用して合計を含んでいるでしょう

var total = 0 for(var item : itemResult) total += item.price * array[i.id] 

totalを繰り返すコレクション なりましょうはい。 http://dev.mysql.com/doc/refman/5.0/ja/subqueries.html – Galz

答えて

1

私はあなたがこの希望を理解する:いずれの場合で

SELECT 1 AS product_id, 1 AS quantity 
UNION ALL 
SELECT 2, 1 
UNION ALL 
SELECT 3, 100 
... 

を、それはこれらのいずれかを実行するためにそれほど厄介になります。

  • は、データベース
  • 内のデータベース
  • ストアカートから価格を取得

あなたはすべての計算を1か所で行うことができます。

0

おそらくViewsまたはsubqueriesを参照している - もしそうなら、あなたは正しいです。

0

のデータは、にあります(セッションデータをDBに書き込まない限り)です。
iが

SELECT i.id, i.price 
FROM item i 
WHERE i.id in (array.keys) 

想定した結果がコレクション内に配置され、このアプローチを提案するかもしれない、
itemResultは、この擬似コード

関連する問題